Múltiples vulnerabilidades en la librería glibc de distribuciones Linux
Las versiones 2.36 y 2.37 de la librería glibc son vulnerables y Qualys ha confirmado las siguientes distribuciones de Linux afectadas:
- Debian, versiones 12 y 13;
- Ubuntu, versiones 23.04 y 23.10;
- Fedora, versiones desde 37 hasta 39.
El equipo Qualys Threat Research Unit (TRU) ha descubierto 4 vulnerabilidades en la librería GNU C (glibc), concretamente en las funciones syslog y qsort. Un atacante sin privilegios podría obtener acceso root en varias de las principales distribuciones de Linux, en configuraciones predeterminadas, mediante una escalada de privilegios local.
Actualizar glibc a versiones posteriores a las afectadas.
Se ha encontrado un desbordamiento de búfer basado en el montículo en la función __vsyslog_internal() de la librería glibc. Esta función es, a su vez. llamada por las funciones syslog() y vsyslog(). Este fallo se produce cuando no se llama a la función openlog o se llama con el argumento de identificación establecido en NULL, y el nombre del programa es mayor de 1024 bytes, lo que podría provocar un fallo de la aplicación o una escalada local de privilegios para obtener privilegios de root. Se ha asignado el identificador CVE-2023-6246 para esta vulnerabilidad.
Durante el análisis de la vulnerabilidad CVE-2023-6246, se detectaron otras 2 vulnerabilidades adicionales:
- Fallo cuando se llama a las funciones con un mensaje mayor que INT_MAX bytes, lo que podría provocar un cálculo incorrecto del tamaño del búfer para almacenar el mensaje y, en consecuencia, el bloqueo de la aplicación. Se ha asignado el identificador CVE-2023-6779 para esta vulnerabilidad.
- Fallo cuando se llama a las funciones con un mensaje muy largo, lo que conlleva un cálculo incorrecto del tamaño del búfer para almacenar el mensaje, dando lugar a un comportamiento indefinido. Se ha asignado el identificador CVE-2023-6780 para esta vulnerabilidad.
La última vulnerabilidad detectada (sin CVE asignado) se trata de un fallo de corrupción de memoria en la función qsort(), causado por la falta de comprobación de límites.