sábado, 11 de octubre de 2008

Corregida una vulnerabilidad de ejecución remota de código en Graphviz

El investigador de IBM, Roee Hay, ha descubierto recientemente una vulnerabilidad en Gralphviz que podría ser aprovechada para causar una denegación de servicio o ejecutar código arbitrario en el sistema, si un usuario intenta abrir un archivo DOT especialmente manipulado.

Graphviz es un software gratuito de visualización de grafos, de código abierto y que se distribuye bajo licencia Common Public License v.1.0. El programa permite realizar una descripción de grafos en formato de texto (lenguaje DOT) y obtener diagramas en múltiples formatos distintos. Desde la página web de Graphviz se pueden descargar los paquetes para Windows, Mac, FreeBSD, Solaris y para distintas distribuciones de Linux.

La vulnerabilidad está causada por una falta de comprobación de límites del array "Gstack" en la función "push_subg" de "lib/graph/parser.c". Esto podría ser aprovechado para desbordar el array causando una corrupción de memoria que podría ser aprovechada para ejecutar código arbitrario.

A continuación se puede ver la porción de código vulnerable, perteneciente a la versión 2.20.2 de Graphviz:

static void push_subg(Agraph_t *g) {
G = Gstack[GSP++] = g;
}

Y la función corregida, perteneciente a la última versión (v.2.20.3):

static void push_subg(Agraph_t *g) {
if (GSP >= GSTACK_SIZE) {
agerr (AGERR, "Gstack overflow in graph parser\n"); exit(1);
}
G = Gstack[GSP++] = g;
}

Si bien es cierto que la vulnerabilidad era evitable, y que la modificación requerida parece trivial, cabe reseñar la eficacia del grupo de desarrolladores del proyecto, ya que pasó tan solo un día desde que fueron informados de la vulnerabilidad hasta que pusieron a disposición de sus usuarios una versión actualizada y no vulnerable.

Se recomienda actualizar a la versión 2.20.3 de Graphviz, disponible para las distintas plataformas desde:
http://www.graphviz.org/Download..php


Pablo Molina
pmolina@hispasec.com


Más información:

Roee Hay: Graphviz Buffer Overflow Code Execution
http://roeehay.blogspot.com/2008/10/graphviz-buffer-overflow-code-execution.html

No hay comentarios:

Publicar un comentario en la entrada