Desde Linux Darkcrizt  

Looney Tunables, una vulnerabilidad que afecta cualquier distribución que utilice Glibc

 

Looney-Tunables

Looney Tunables – Escalada de privilegios locales en ld.so de glibc

Hace pocos días Qualys, dio a conocer mediante una publicación de blog, que ha identificado una vulnerabilidad peligrosa (ya catalogada bajo CVE-2023-4911) y cuyo nombre en código es «Looney Tunables».

Sobre esta vulnerabilidad se menciona que permite a un usuario local elevar sus privilegios en el sistema especificando datos formateados especialmente en la variable de entorno «GLIBC_TUNABLES» antes de ejecutar un archivo ejecutable con el indicador suid.

La vulnerabilidad se considera como peligrosa debido a que se encuentra dentro del vinculador ld.so proporcionado como parte de la biblioteca C del sistema Glibc (GNU libc) presente en muchos sistemas y se debe a un cambio introducido en abril de 2021 como parte de la versión glibc 2.34.

La biblioteca GNU C, comúnmente conocida como glibc, es la biblioteca C en el sistema GNU y en la mayoría de los sistemas que ejecutan el kernel de Linux. Define las llamadas al sistema y otras funcionalidades básicas, como open, malloc, printf, exit, etc., que requiere un programa típico. El cargador dinámico de la biblioteca GNU C es un componente crucial de glibc responsable de preparar y ejecutar programas

Hemos identificado y explotado con éxito esta vulnerabilidad (una escalada de privilegios local que otorga privilegios de root completos) en las instalaciones predeterminadas de Fedora 37 y 38, Ubuntu 22.04 y 23.04 y Debian 12 y 13. Es probable que otras distribuciones sean igualmente susceptibles, aunque Hemos notado que Alpine Linux sigue siendo una excepción debido a su uso de musl libc en lugar de glibc. Esta vulnerabilidad se introdujo en abril de 2021.

La presencia de la vulnerabilidad se debe a un error en el código de análisis de cadenas especificado en la variable de entorno GLIBC_TUNABLES, en el cual debido a una combinación incorrecta de parámetros en esta variable hace que el valor analizado se escriba más allá del búfer asignado.

Esta variable de entorno, destinada a ajustar y optimizar las aplicaciones vinculadas con glibc, es una herramienta esencial para desarrolladores y administradores de sistemas. Su mal uso o explotación afecta ampliamente el rendimiento, la confiabilidad y la seguridad del sistema.

El problema se manifiesta cuando, en lugar de las secuencias de los parámetros que se especifican en el formulario con una doble asignación. En este caso, la asignación se procesa dos veces y este doble procesamiento produce el resultado que es mayor que el tamaño del búfer.

Para demostrar la vulnerabilidad, los investigadores han preparado un exploit estable que permite obtener derechos de root cuando se utiliza con casi cualquier programa con el indicador suid root.

Las excepciones son la utilidad sudo, las utilidades chage y passwd en Fedora (protegidas por reglas SELinux separadas) y la utilidad snap-confine en Ubuntu (protegidas por reglas AppArmor separadas). El método de explotación propuesto tampoco funciona en RHEL 8 y RHEL 9, aunque estas ramas son susceptibles a vulnerabilidades.

Teniendo en cuenta la vulnerabilidad identificada en el cargador dinámico de la biblioteca GNU C y su impacto potencial en los sistemas, la Unidad de Investigación de Amenazas de Qualys aconseja a los equipos de seguridad que prioricen la solución de este problema.

Como ya se menciono arriba, la capacidad de explotar con éxito la vulnerabilidad, se ha demostrado en Fedora 37 y 38, Ubuntu 22.04 y 23.04, Debian 11, 12 y 13.

Se supone que la vulnerabilidad también aparecerá en cualquier otra distribución que utilice Glibc. Mientras que las distribuciones basadas en la biblioteca C del sistema Musl, como Alpine Linux, no se ven afectadas por el problema. Por la parte de la solución de la vulnerabilidad, esta se distribuyo en forma de parche, el cual fue agregado el 2 de octubre.

En cuanto a la publicación del código del xploit, se menciona que se publicará más adelante, una vez que la vulnerabilidad se haya solucionado en todas partes. Puede verificar la vulnerabilidad de su sistema a la vulnerabilidad usando el siguiente comando, que fallará si hay un problema:

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.