Dos vulnerabilidades críticas descubiertas en el sistema de control de versiones del código fuente de Git

Los mantenedores del   sistema de control de versiones del código fuente de Git instan a actualizar el software para corregir dos vulnerabilidades críticas.

Los mantenedores del   sistema de control de versiones del código fuente  de Git anunciaron haber solucionado un par de vulnerabilidades críticas, rastreadas como CVE-2022-23521  y  CVE-2022-41903 , en su software.

Las vulnerabilidades se descubrieron como parte de una auditoría del código fuente de seguridad del sistema de control de versiones del código fuente patrocinado por  OSTIF , que fue realizada por un equipo de expertos en seguridad de  X41  y  GitLab .

Las vulnerabilidades pueden ser explotadas por un actor de amenazas para lograr la ejecución remota de código.

Las vulnerabilidades afectan a las versiones <= v2.30.6, v2.31.5, v2.32.4, v2.33.5, v2.34.5, v2.35.5, v2.36.3, v2.37.4, v2.38.2 y v2.39.0.

Las versiones parcheadas incluyen v2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6, v2.36.4, v2.37.5, v2.38.3 y v2.39.1.

El CVE-2022-41903 es un desbordamiento de enteros en `git archive`, `git log –format` que puede conducir a la ejecución remota de código en git.

“Git es un sistema de control de revisión distribuido. `git log` puede mostrar confirmaciones en un formato arbitrario utilizando sus especificadores `–format`. Esta funcionalidad también está expuesta a `git archive` a través del atributo git `export-subst`. Al procesar los operadores de relleno, hay un desbordamiento de enteros en `pretty.c::format_and_pad_commit()` donde `size_t` se almacena incorrectamente como `int` y luego se agrega como un desplazamiento a `memcpy()`. ” lee el aviso para este problema. “Este desbordamiento puede ser activado directamente por un usuario que ejecuta un comando que invoca la maquinaria de formato de confirmación (por ejemplo, `git log –format=…`). También puede activarse indirectamente a través del archivo git a través del mecanismo export-subst, que expande los especificadores de formato dentro de los archivos dentro del repositorio durante un archivo git”.

Los mantenedores del proyecto recomiendan a los usuarios que no pueden actualizar inmediatamente su instalación que deshabiliten el “archivo git” en repositorios que no son de confianza para mitigar la vulnerabilidad CVE-2022-41903.

El segundo problema, rastreado como CVE-2022-23521, es un desbordamiento de enteros de análisis de gitattributes.

“Git es un sistema de control de revisión distribuido. gitattributes es un mecanismo que permite definir atributos para rutas. Estos atributos se pueden definir agregando un archivo `.gitattributes` al repositorio, que contiene un conjunto de patrones de archivo y los atributos que deben establecerse para las rutas que coincidan con este patrón. Al analizar gitattributes, pueden ocurrir múltiples desbordamientos de enteros cuando hay una gran cantidad de patrones de ruta, una gran cantidad de atributos para un solo patrón o cuando los nombres de los atributos declarados son enormes”. lee el aviso. “Estos desbordamientos se pueden desencadenar a través de un archivo `.gitattributes` diseñado que puede ser parte del historial de confirmación. Git divide silenciosamente las líneas de más de 2 KB cuando analiza los atributos de git de un archivo, pero no cuando los analiza desde el índice. En consecuencia, el modo de vulnerabilidad depende de si el archivo existe en el árbol de trabajo, en el índice o en ambos. Este desbordamiento de enteros puede resultar en lecturas y escrituras arbitrarias en el montón lo que puede resultar en la ejecución remota de código”.

“En conclusión, el código base de Git muestra varios problemas de seguridad y el gran tamaño del código base hace que sea un desafío abordar todas las instancias potenciales de estos problemas. El uso de contenedores seguros puede mejorar la seguridad general del software como estrategia a corto plazo. Como estrategia de mejora a largo plazo, recomendamos alternar entre los sprints de refactorización de la base de código en intervalos de tiempo y las revisiones de seguridad posteriores”. concluye el informe .

Fuente: https://securityaffairs.com/140977/security/git-critical-flaws.html