Buscar este blog

miércoles, 29 de septiembre de 2010

Falla de regresión en el paquete git-core de Debian Lenny

Debian ha publicado una actualización del paquete git-core en el que se corrige un error de regresión que impide a los usuarios clonar un repositorio.

Git es el sistema usado para administrar el código fuente del núcleo Linux. De hecho fue Linus Torvalds quien comenzó el proyecto, debido en parte a las carencias que encontraba en otros sistemas de control de versiones.

El error introducido impide a los usuarios crear o clonar repositorios debido a los permisos, demasiado estrictos, asignados a las plantillas de git localizadas en: /usr/share/git-core.

En el código original se puede observar que tras obtener la longitud de la cadena en 'suspect' no se compara con el tamaño máximo del búfer reservado en 'path' y definido en 'PATH_MAX'.

    char path[PATH_MAX];
    size_t len = strlen(suspect);
    strcpy(path, suspect);

Esto permite sobreescribir datos de la pila rebasando el tamaño definido en 'PATH_MAX' a través de 'suspect' que a su vez es inicializado con valor obtenido del archivo .git leido.

El parche incluye la comprobación del valor obtenido para evitar el desbordamiento:

    char path[PATH_MAX];
    size_t len = strlen(suspect);
    if (PATH_MAX <= len + strlen("/objects"))
    die("Too long path: %.*s", 60, suspect);
    strcpy(path, suspect);

Si quieren más información pueden visitar: http://www.hispasec.com/unaaldia/4355/comentar

No hay comentarios:

Publicar un comentario