miércoles, 17 de febrero de 2016

Grave vulnerabilidad en la librería glibc

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

Proof of concept for CVE-2015-7547

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 en la entrada