sábado, 29 de enero de 2011

Corregida vulnerabilidad en la librería Pango

Se ha corregido una vulnerabilidad en la librería Pango que podría permitir a un atacante remoto causar una denegación de servicio y potencialmente ejecutar código arbitrario a través de un archivo de fuentes especialmente manipulado.

Pango es una librería de fuente abierta para dibujar texto con énfasis en la internacionalización. Es un proyecto muy asociado al toolkit GTK+, GNOME y usado en múltiples aplicaciones.

El error, descubierto por Dan Rosenberg, reside en la función 'pango_ft2_font_render_box_glyph' localizada en el archivo 'pango/pangoft2-render.c'.

El error se produce cuando libpango usa la librería FreeType2 como respaldo para ciertas operaciones con archivos de fuentes (tipografías).

En la función 'pango_ft2_font_render_box_glyph' se reserva memoria efectuando el cálculo para el tamaño necesario de manera errónea:

126 box->bitmap.buffer = g_malloc0 (box->bitmap.rows * box->bitmap.pitch);

Pero varias líneas más arriba podemos observar:

123 box->bitmap.rows = height;
124 box->bitmap.pitch = height;

Cuando realmente box->bitmap.pitch debería estar inicializado a al valor de 'width'. Esto altera las dimensiones correctas del bloque de memoria reservado y permite que se sobreescriba.

La vulnerabilidad ha recibido el CVE-2011-0020 y se ha publicado una nueva versión de Pango. Es de esperar que las diferentes distribuciones Linux publiquen actualizaciones en breve.


David García
dgarcia@hispasec.com


Más información:

Heap corruption in font parsing with FreeType2 backend
https://bugzilla.gnome.org/show_bug.cgi?id=639882

Web del Proyecto Pango
http://www.pango.org/

No hay comentarios:

Publicar un comentario en la entrada