Corregida en pocas horas, grave vulnerabilidad remota en CGit
Esta semana se ha resuelto una grave vulnerabilidad remota en CGit, relacionada con el salto de restricciones (Path traversal) y la capacidad de mostrar información sensible del servidor cgit vulnerado. En unas pocas horas el fallo fue corregido por los desarrolladores.
CGit es una interfaz web (CGI) del sistema de repositorios git, escrito en C, que facilita la gestión remota entre diferentes usuarios.
La vulnerabilidad (CVE-2018-14912), descubierta por el investigador de Google Project Zero, Jann Horn, estaba localizada en la función cgit_clone_objects() y específicamente en la combinación de send_file() y git_path().
Esta última función no aplicaba los filtros necesarios en las rutas recibidas, para impedir este tipo de vulnerabilidad. Al explotarse, cualquier usuario malintencionado podría construir peticiones de este tipo:
http:///cgit/cgit.cgi/git/objects/?path=
que, al ejecutarse por parte del servidor, devolverían el contenido del path/fichero invocado. Ejemplo de una petición utilizando curl, que mostraría el fichero de usuarios del sistema:
$ curl http://127.0.0.1/cgit/cgit.cgi/git/objects/?path=../../../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
Analizando el diff dispuesto para corregir la vulnerabilidad, se detalla además que el fallo fue introducido en 2008. Debido a la longevidad de la misma (las versiones 0.8 a la 1.2 se verían afectadas) y que es trivial a la hora de explotarse, recomendamos encarecidamente actualizar urgentemente a la última versión disponible CGit 1.2.1:
git://git.zx2c4.com/cgit
Más información:
cgit: directory traversal in cgit_clone_objects()
https://bugs.chromium.org/p/project-zero/issues/detail?id=1627
clone: fix directory traversal
https://git.zx2c4.com/cgit/commit/?id=53efaf30b50f095cad8c160488c74bba3e3b2680
clone: fix directory traversal
https://git.zx2c4.com/cgit/commit/?id=53efaf30b50f095cad8c160488c74bba3e3b2680
Powered by WPeMatico