Actualización de software de Git para evitar ataques de ejecución remota de código (RCE)

Los encargados del sistema de control de versiones del código fuente Git han emitido actualizaciones para corregir dos vulnerabilidades críticas que al ser explotadas permiten a un atacante realizar ejecución remota de código.

La primera vulnerabilidad rastreada como CVE-2022-41903 (CVSS 9.8) se puede explotar enviando una entrada especialmente diseñada, esta falla puede llegar a permitir a un atacante remoto ejecutar código arbitrario en el sistema.

Al procesar los operadores de relleno (ej. %<( , %<|( , %>( , %>>( , %><( ) podría ocurrir un desbordamiento de enteros en «pretty.c::format_and_pad_commit()» donde un “size_t” se almacena incorrectamente como un “int” y luego se agrega como un desplazamiento a una llamada memcpy() posterior.

También se puede activar indirectamente a través de «git archive» mediante el mecanismo «export-subst«, que expande los especificadores de formato dentro de los archivos que se encuentran en el repositorio durante un «git archive«.

La segunda vulnerabilidad rastreada como CVE-2022-23521 (CVSS 9.8) puede ser explota a través de un archivo “gitattributes”. Los actores de amenazas pueden enviar una entrada especialmente diseñada para aprovechar esta falla y ocasionar 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 muy grandes, estos desbordamientos pueden dar lugar a la ejecución remota de código.

Ambas vulnerabilidades afectan a las mismas versiones y tienen sus respectivos parches.

Versiones afectadas o inferioresVersiones parcheadas
v2.30.6v2.30.7
v2.31.5v2.31.6
v2.32.4v2.32.5
v2.33.5v2.33.6
v2.34.5v2.34.6
v2.35.5v2.35.6
v2.36.3v2.36.4
v2.37.4v2.37.5
v2.38.2v2.38.3
v2.39.0v2.39.1

Además de las dos vulnerabilidades críticas, también se corrigió una falla de alta gravedad rastreada como CVE-2022-41953 (CVSS 8.6) en la GUI de Git para Windows.

El problema específico de Windows implica una búsqueda de $PATH que incluye el directorio de trabajo actual, que se puede aprovechar para ejecutar código arbitrario al clonar repositorios con la GUI de Git

GitLab lanzó las versiones 15.7.5, 15.6.6 y 15.5.9 para GitLab Community Edition (CE) y Enterprise Edition (EE) para corregir los CVE-2022-41903 y CVE-2022-23521.

Recomendaciones

  • Se recomienda a los usuarios de Windows, macOS y Linux/Unix que actualicen a la versión más nueva de git (v2.39.1).
  • En caso de que no pueda actualizar a la última versión deshabilite «git archive» en repositorios que no son de confianza como una mitigación para CVE-2022-41903.
  • Actualizar GitLab a la última versión lo antes posible.

Referencias