Git lanzo nuevas versiones que abordan 5 nuevas vulnerabilidades
Git, el sistema de control de código fuente distribuido, se ha visto afectado por una serie de vulnerabilidades, de las cuales, una de ellas está catalogada con un nivel de gravedad crítico, ya que permite la ejecución de código malicioso al clonar un repositorio manipulado por un atacante mediante el comando «git clone».
Con la finalidad de dar solución las vulnerabilidades recientes, se liberó la versión de Git 2.45.1, la cual aborda cinco vulnerabilidades críticas que afectan a Windows, macOS, Linux y BSD.
Vulnerabilidades críticas en Git
Las nuevas versiones correctivas de Git que van desde la versión 2.45.1 hasta la 2.39.4 y solucionan las cinco vulnerabilidades, siendo la más grave de estas vulnerabilidades (CVE-2024-32002) la cual se presenta únicamente en sistemas de archivos que no distinguen entre mayúsculas y minúsculas y que admiten enlaces simbólicos, como los utilizados de manera predeterminada en Windows y macOS.
Esta vez, por lo tanto, agregamos más cambios que no solo solucionan los problemas de seguridad existentes sino que también intentan reducir la gravedad de cualquier vulnerabilidad relacionada que pueda encontrarse en el futuro:
Git ha introducido varias mejoras de seguridad para proteger contra la ejecución remota de código (RCE), que es cuando un atacante podría ejecutar código dañino en su computadora.
Se menciona que el problema ocurre cuando se crea un directorio y un enlace simbólico en el submódulo, diferenciándose solo en el uso de caracteres en mayúsculas y minúsculas, lo que permite escribir archivos en el directorio .git/ en lugar del directorio de trabajo del submódulo. Al obtener la capacidad de escribir en .git/, un atacante puede modificar los hooks a través de .git/hooks y ejecutar código arbitrario durante una operación de «git clone».
Las otras vulnerabilidades que fueron solucionadas son:
- CVE-2024-32004 (nivel de gravedad «Alto»): En máquinas multiusuario, un atacante puede preparar un repositorio local para que parezca un clon parcial al que le falta un objeto, de modo que, cuando se clone este repositorio, Git ejecutará código arbitrario durante la operación con permisos completos del usuario realizando el clon.
- CVE-2024-32465 (nivel de gravedad «Alto»): La clonación desde archivos .zip que contienen repositorios de Git puede eludir protecciones, lo que potencialmente permite la ejecución de hooks inseguros. Hay circunstancias en las que las correcciones para CVE-2024-32004 no son suficientes. Por ejemplo, al obtener un archivo .zip que contiene una copia completa de un repositorio Git, no se debe confiar en que sea seguro de forma predeterminada, ya que, por ejemplo, los enlaces podrían configurarse para ejecutarse dentro del contexto de ese repositorio.
- CVE-2024-32020 (nivel de gravedad «Bajo»): Cuando el repositorio de origen y el de destino residen en el mismo disco, los clones locales pueden terminar creando enlaces físicos de archivos en la base de datos de objetos del repositorio de destino. Si el repositorio de origen es propiedad de un usuario diferente, esto significa que esos archivos recién vinculados pueden ser reescritos en cualquier momento por ese otro usuario, lo que puede sorprender fácilmente a los usuarios que no están familiarizados con este detalle de implementación.
- CVE-2024-32021 (nivel de gravedad «Bajo»): Al clonar un repositorio de origen local que contiene enlaces simbólicos, Git puede crear enlaces físicos en el directorio objects/ a archivos arbitrarios en el mismo sistema de archivos que el repositorio de destino. Esto se puede utilizar en ataques sofisticados para manipular Git para que escriba archivos fuera del árbol de trabajo de Git y fuera del directorio .git/.
Cabe mencionar que demás de corregir las vulnerabilidades, las nuevas versiones también introducen varios cambios destinados a mejorar la protección contra vulnerabilidades que conducen a la ejecución remota de código y la manipulación de enlaces simbólicos al realizar la clonación. Las rutas a los submódulos ahora solo pueden contener directorios reales.
Adicionalmente, se ha publicado un análisis detallado de la técnica para explotar la vulnerabilidad CVE-2024-32002 y un ejemplo de un exploit que permite crear repositorios que, al ser clonados con el comando «git clone –recursive«, ejecutan el código especificado por el atacante.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.