La reciente vulnerabilidad descubierta por los investigadores de Qualys en Glibc (la biblioteca GNU C) que permite obtener acceso root en dispositivos basados en Linux, se habría introducido accidentalmente en agosto de 2022 con el lanzamiento de la versión 2.37 de glibc.
La vulnerabilidad catalogada bajo «CVE-2023-6246» y una puntuación CVSS de 7.8, se debe a un desbordamiento del búfer y tiene su origen en la función «vsyslog_internal()» de glibc, que es utilizada por syslog() y vsyslog() para fines de registro del sistema.
Para quienes desconocen de Glibc, deben saber que esta es una biblioteca fundamental para programas escritos en lenguaje C, actuando como una interfaz estándar entre los programas y el sistema operativo en el que se ejecutan. La falla de escalada de privilegios afecta a funciones internas de syslog y vsyslog, dos componentes cruciales en el registro del sistema en sistemas Unix y similares, incluyendo sistemas basados en GNU/Linux.
Esta falla permite una escalada local de privilegios, permitiendo a un usuario sin privilegios obtener acceso completo a la raíz «, dijo Saeed Abbasi, gerente de producto de la unidad de investigación de amenazas de Qualys, agregando que afecta a las principales distribuciones de Linux como Debian, Ubuntu y Fedora.
Un actor de amenazas podría aprovechar la falla para obtener permisos elevados a través de entradas especialmente diseñadas para aplicaciones que utilizan estas funciones de registro. » Aunque la vulnerabilidad requiere condiciones específicas para ser explotada (como un argumento argv[0] o openlog() anormalmente largo), su impacto es significativo debido al uso generalizado de la biblioteca afectada
Syslog es un protocolo y una aplicación utilizada para registrar registros del sistema, mientras que vsyslog ofrece capacidades avanzadas de registro virtual para una gestión más específica de registros en entornos complejos. Ambos son esenciales para la trazabilidad y la resolución de problemas al registrar eventos importantes.
La magnitud del riesgo radica en que el desbordamiento del buffer puede permitir a un atacante obtener acceso completo al sistema como root, a través de entradas manipuladas enviadas a las aplicaciones que utilizan las funciones de registro vsyslog y syslog.
Durante las pruebas realizadas por los investigadores, se confirmó que varias distribuciones de Linux, incluyendo Debian 12 y 13, Ubuntu 23.04 y 23.10, y Fedora (versiones 37 a 39 inclusive), son vulnerables. Aunque se verificaron algunas distribuciones, es probable que otras distribuciones de Linux también estén afectadas por esta vulnerabilidad de seguridad.
Qualys dijo que un análisis más detallado de glibc descubrió dos fallas más en la función vsyslog_internal() CVE-2023-6779 y CVE-2023-6780. La segunda vulnerabilidad, CVE-2023-6780, se encuentra en la función qsort() de glibc. Esta vulnerabilidad de corrupción de memoria surge de la falta de verificación de límites al utilizar qsort() con una función de comparación no transitiva y una gran cantidad de elementos controlados por un atacante. Aunque no se han identificado ejemplos reales de programas vulnerables, su potencial impacto es significativo y afecta a todas las versiones de glibc desde septiembre de 1992.
Por la parte de la divulgación de la vulnerabilidad, se menciona que el equipo de Qualys se puso en contacto con el equipo de seguridad de glibc con respecto a las fallas el 12 de diciembre de 2023, pero el equipo decidió no tratar la corrupción de memoria en qsort() como una vulnerabilidad. El 16 de enero de 2024, TRU respaldó el compromiso b9390ba en todas las versiones estables de glibc y la fecha de lanzamiento coordinada se fijó para el 30 de enero de 2023.
Las vulnerabilidades identificadas en las funciones syslog y qsort de glibc resaltan un aspecto crítico de la seguridad del software: incluso los componentes más fundamentales y confiables no son inmunes a las fallas.
Es importante destacar que solo las versiones 2.36 y 2.37 de glibc son vulnerables, y las últimas versiones ya integran el parche que soluciona esta vulnerabilidad. Por lo tanto, es esencial actualizar a las versiones más recientes para proteger los sistemas afectados. Se recomienda verificar la versión de la biblioteca glibc presente en el sistema utilizando el siguiente comando:
ldd --version
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.