Los
desarrolladores de Git han alertado de una importante vulnerabilidad presente
en el cliente oficial de Git y compatibles, como GitHub, que afecta a todas las
versiones y plataformas disponibles y posibilita la ejecución de código remoto.
Git es un software de control de versiones
diseñado por Linus Torvalds, diseñado para la confiabilidad del mantenimiento
de versiones de aplicaciones cuando estas tienen un gran número de archivos de
código fuente. En la actualidad proyectos de relevancia usan Git para el
mantenimiento de sus versiones, como el grupo de programación del núcleo Linux.
Detalle e
Impacto de la vulnerabilidad
- La vulnerabilidad CVE-2014-9390, estaría presente en código del cliente oficial al ejecutarse en un sistema de ficheros que no consideren las mayúsculas "case-insensitive" (como los sistemas NTFS/FAT en Windows). Esto es debido a una incorrecta gestión y filtrado de las rutas de ficheros y directorios, así como el procesamiento de caracteres especiales en los mismos.
- Por ejemplo, un repositorio que realizara un commit mediante la ruta ".Git/config" en un sistema "case-insensitive" daría lugar a cargar como efectiva ".git/config", lo que permitiría clonar un repositorio alternativo especialmente manipulado y configurado para ejecutar código arbitrario del lado del cliente. De esta forma se podría distribuir malware de forma masiva o comprometer el sistema.
- En Windows, rutas del estilo "git~1/config" se convertirían en ".git/config", o en HFS+ (MacOS X), con rutas como ".g\u200cit/config”.
- Por tanto las versiones afectadas son numerosas, partiendo desde Git/GitHub para Windows, Git OS X, JGit & EGit, libgit2 e incluso el cliente para Visual Studio. Los sistemas UNIX/Linux, no se verían afectados potencialmente, ya que por defecto el modo activo es "case-sensitive", aunque no lo excluye si el usuario lo configura de otro modo.
- Un hecho colateral de esta vulnerabilidad, es que indirectamente afecta a aquellos servidores Git que no sean actualizados o configurados correctamente para evitar albergar "commits" maliciosos, ya que usuarios con versiones no actualizadas podrían seguir infectándose. Para ello desde Atlassian se ofrece una guía bastante completa con los pasos a realizar y disponible como enlace al final de este artículo.
Tanto git, github y el resto de clientes
compatibles han publicado nuevas versiones corregidas:
- GitHub 2.6.6 (Windwows) y Honourary Brit (Mac): https://github.com/
- Git (v1.8.5.6, v1.9.5, v2.0.5, v2.1.4, y v2.2.1): https://www.kernel.org/pub/software/scm/git/
- Vulnerability announced: update your Git clients https://github.com/blog/1938-vulnerability-announced-update-your-git-clients
- [ANNOUNCE] Git v2.2.1 (and updates to older maintenance tracks) http://article.gmane.org/gmane.linux.kernel/1853266
- Securing your Git server against CVE-2014-9390 https://developer.atlassian.com/blog/2014/12/securing-your-git-server/