Google
ha confirmado la existencia de una
vulnerabilidad de desbordamiento de búfer en la librería glibc (empleada mayoritariamente en distribuciones,
aplicaciones y dispositivos Linux), que
podría permitir la ejecución remota de código.
glib es la "GNU LIB C".
La "librería C" es librería estándar del lenguaje C, usada por
prácticamente cualquier programa que se compile en un entorno UNIX. La glibc es
la versión de "LIBC" creada por el proyecto GNU, y utilizada por
prácticamente todas las distribuciones Linux.
Según describen, el problema
saltó a la luz cuando un ingeniero de Google comprobó que su cliente SSH sufría
un fallo de segmentación cada vez que intentaba conectar a un host específico. Tras
una investigación intensa descubrieron que el problema residía en glibc y no en
SSH como creían inicialmente.
Fruto de la investigación
comprobaron que el problema podía permitir la ejecución remota de código.
Sorprendentemente el equipo de mantenimiento de glibc ya había sido alertado de
este problema, a través de su gestor de fallos en julio de 2015.
Por otra parte, destacan la colaboración con dos investigadores de Red Hat que
también estaban estudiando el impacto de forma independiente.
La vulnerabilidad ha pasado desapercibida
durante mucho tiempo, realmente se introdujo
en la versión 2.9 de la librería, lanzada en mayo de 2008, y afecta a todas
las versiones publicadas desde entonces.
El problema, al que se le ha asignado
el CVE-2015-7547, reside en que la resolución DNS en el lado del cliente es
vulnerable a un desbordamiento de búfer basado en pila cuando se usa la función
getaddrinfo (); al tratar respuestas DNS de un tamaño superior a 2.048 bytes. Esto
podría permitir al atacante ejecutar código
arbitrario en los sistemas afectados con los privilegios del usuario
relacionado.
Todo el software que utilice esta
función puede ser explotado con nombres de dominio controlados por un atacante,
servidores DNS controlados por atacantes, o por medio ataques hombre en el
medio.
Fruto de la colaboración de los
técnicos de Google y Red Hat se ha podido investigar el problema, desarrollar
un parche
y realizar todos los test de regresión. Aunque se destaca el trabajo realizado
principalmente por el equipo de la distribución de Linux.
El parche publicado está disponible desde:
Google confirma que el problema no es fácil de explotar, aunque es
posible lograr la ejecución remota de código. Es necesario evitar mitigaciones
de seguridad existentes como ASLR. Como es obvio no publican el código para
explotar el problema, aunque sí ofrecen una prueba de concepto para
comprobar si se está afectado por este problema.
La librería glibc es uno de los pilares de muchos sistemas, distribuciones, aplicaciones,
entornos o sistemas empotrados. Prácticamente casi todo el software nativo
y no nativo hace uso de la librería. Eso convertiría en virtualmente vulnerable
a casi todos los programas que hagan uso de la función afectada. En breve
aparecerán actualizaciones para múltiples productos que usen esta librería.
Las principales distribuciones Linux ya ofrecen actualizaciones:
Más Información:
CVE-2015-7547: glibc getaddrinfo stack-based
buffer overflow
[PATCH] CVE-2015-7547 --- glibc getaddrinfo()
stack-based buffer overflow
Sourceware Bugzilla – Bug 18665
Debian Security Advisory
DSA-3481-1 glibc -- security update
USN-2900-1: GNU C Library vulnerability
Gentoo's Bugzilla – Bug 574880
(CVE-2015-7547) - <sys-libs/glibc-2.21-r2:
stack overflow in getaddrinfo
Critical: glibc security update
Security Advisory Critical: glibc security and
bug fix update
Antonio Ropero
Twitter: @aropero
No hay comentarios:
Publicar un comentario