ClickCease CVE-2021-45078 Identificado por TuxCare | tuxcare.com

Únase a nuestro popular boletín

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.

CVE-2021-45078 identificado por el equipo de soporte de ciclo de vida ampliado de TuxCare.

27 de diciembre de 2021 - Equipo de RRPP de TuxCare

Mientras se realizaba el backporting de las correcciones del paquete binutils para distribuciones de Linux más antiguas cubiertas por Extended Lifecycle Support, el equipo identificó una vulnerabilidad en la forma en que se abordó originalmente CVE-2018-12699. Esta nueva vulnerabilidad permite la corrupción de memoria y la denegación de servicio en condiciones específicas de la funcionalidad de binutils, que, a su vez, es utilizada por otros múltiples paquetes.

 

La vulnerabilidad original tenía una puntuación CVSS (v3) de 9,8, y a la vulnerabilidad recién identificada se le ha asignado una puntuación CVSS (v3) de 7,5. La última actualización de binutils disponible para los suscriptores del servicio ya incluye una corrección adecuada para el problema subyacente, y el código fue corregido en el proyecto de código abierto upstream después de nuestro informe.

 

 

UNA VISIÓN GENERAL DE ALTO NIVEL DEL RIESGO

Es posible que determinadas herramientas binutils se bloqueen debido a un manejo inadecuado de ciertos tipos de información. Esto a su vez puede desencadenar fallos en otras herramientas o aplicaciones que dependen de binutils para su funcionamiento, como depuradores, visores de archivos, etc.

 

Binutils incluye funcionalidades para analizar diferentes tipos de archivos, como ELF binario (archivos ejecutables binarios de Linux) y archivos que utilizan el formato predecesor de ELF, XCOFF. El caso concreto que desencadena esta vulnerabilidad reside en la funcionalidad XCOFF. Si bien es cierto que se trata de un formato de archivo relativamente antiguo que ha sido sustituido por ELF, el código para manejarlo sigue presente en el paquete binutils.

 

binutils es un paquete fundamental en las distribuciones Linux, e incluso si no se utilizan herramientas de desarrollo de software directamente, es muy probable que ya esté desplegado en sistemas de producción como dependencia de otros paquetes. Incluye múltiples herramientas para realizar tareas como manipulación de archivos binarios, enlazado, ensamblado y otras funcionalidades variadas muy utilizadas, entre otros, en escenarios de desarrollo y depuración. Mantenerlo actualizado garantiza que esas aplicaciones y la funcionalidad central del sistema se mantengan estables y seguras.

 

UN EXAMEN DETALLADO DE LOS PROBLEMAS

 

En la función stab_xcoff_builtin_type, que se encuentra en el archivo binutils/stab.c, hay una escritura fuera de límites en el array 'info-xcoff_types' que ocurre cuando se pasa un typenum específico (-34). Esto provoca que la operación de escritura sobrescriba el campo adyacente 'info->tags' en la línea 3668.

 

A su vez, esto provocará un error de segmentación al llamar a la función finish_stab.

 

Se solicitó y asignó CVE-2021-45078 para el nuevo problema, y recibió una puntuación CVSS (v3) de 7,5. Como es muy reciente, no es imposible que esta puntuación se modifique a medida que otros desarrolladores analicen más a fondo la situación. Al CVE-2018-12699 original, que abordaba una situación similar en otra parte del código y la omitió en este código específico, se le asignó una puntuación de 9,8 (sobre 10), por lo que se reconoce que provocar el bloqueo de binutils es una situación muy grave que requiere precaución.

 

"Ellos [el equipo del proyecto upstream] tienen una enorme lista de CVEs cubiertas con un único parche que debería haber resuelto todas las situaciones, pero en realidad no solucionó todos los casos", explica Pavel Mayorov, el miembro del equipo de backporting de correcciones para binutils que detectó la corrección que faltaba. "El parche no toca todos los lugares del código fuente que podrían desencadenar esta situación". Tampoco es habitual que un solo parche cubra varios CVE, y puede que se haya pasado algo por alto.

 

El informe completo puede consultarse aquí e incluye un código de prueba que desencadena el problema.

 

Esta vulnerabilidad proviene de una corrección incompleta de CVE-2018-12699, que omitió algunos casos que podrían desencadenar el problema. La situación reportada fue resuelta por otros desarrolladores del proyecto después de que nuestro informe fuera enviado, y por lo tanto el problema será resuelto en cualquier versión de binutils en el futuro. También se solucionó en distribuciones de Linux más antiguas que ya no cuentan con el soporte original del proveedor, pero que están cubiertas por los Servicios de soporte de ciclo de vida extendido, y esos sistemas también tienen la versión corregida disponible a través del canal de actualización habitual.

¿Desea automatizar la aplicación de parches de vulnerabilidad sin reiniciar el núcleo, dejar el sistema fuera de servicio o programar ventanas de mantenimiento?

Más información sobre Live Patching con TuxCare

Conviértete en escritor invitado de TuxCare

Empezar

Correo

Únete a

4,500

Profesionales de Linux y código abierto

Suscríbase a
nuestro boletín