domingo, 21 de diciembre de 2014

Corregida ejecución remota a través del cliente Git

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.

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:



Más información:

Vulnerability announced: update your Git clients

[ANNOUNCE] Git v2.2.1 (and updates to older maintenance tracks)

Securing your Git server against CVE-2014-9390




José Mesa Orihuela

No hay comentarios:

Publicar un comentario en la entrada