sábado, 23 de octubre de 2010

Linux: privilegios de 'root' mediante vulnerabilidad en GNU-C loader


Una vulnerabilidad, CVE-2010-3847, en el cargador de bibliotecas de la GNU C library puede ser explotada para obtener privilegios de root bajo Linux y otros sistemas. Los atacantes podrían explotar este agujero, por ejemplo, para conseguir acceso completo al sistema escalando sus privilegios después de irrumpir en un servidor web con derechos de acceso restringidos. Varias distribuciones ya están trabajando en las actualizaciones.

La carga de bibliotecas vinculadas dinámicamente cuando se inician con privilegios de Set user ID (SUID) siempre ha sido un potencial problema de seguridad. Por ejemplo, un atacante puede establecer una ruta de acceso a una biblioteca diseñada para la variable de entorno LD_PRELOAD, iniciar un programa SUID y conseguir ejecutar la biblioteca al mismo nivel de privilegio que el programa SUID. Por esta razón, existen varias medidas de seguridad y restricciones para evitar que las aplicaciones carguen otras bibliotecas arbitrarias más, por ejemplo, mediante el agregado de información de ruta.

La raíz de este nuevo problema está en la forma en que el cargador (loader) expande la variable $ORIGIN que se envía a la aplicación. $ORIGIN permite rutas a bibliotecas para que sean declaradas como relativas a la ubicación de una aplicación. Esto permite que las bibliotecas que son usadas infrecuentemente sean ubicadas en el sub-directorio de la aplicación en lugar de la ruta estandar de bibliotecas. Mientras que Tavis Ormandy, quien descubrió el agujero, dijo que la especificación ELF recomienda que el cargador ignore $ORIGIN con los binarios SUID y SGID, parece que los desarrolladores de GLIBC no implementaron esta recomendación.

Usando varios trucos que involucran enlaces absolutos, descriptores de archivos redirigidos y variables de ambiente, Ormandy consiguió explotar la vulnerabilidad y abrir una shell con el nivel de privilegios de root. Según las pruebas del desarrollador, al menos las versiones glibc 2.12.1 en Fedora 13 y 2.5 en Red Hat Enterprise Linux (RHEL) 5, CentOS 5, son vulnerables. Cuando fue probado por los asociados de Heise Security, sin embargo, una instalación (64-bit) de Ubuntu 10.04 parecía no ser afectada. No obstante, Ormandy escribe en su informe que el agujero puede ser explotado de varias formas.

Traducción: Raúl Batista - Segu-Info
Fuente: The H Security

No hay comentarios: