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