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 inferiores | Versiones parcheadas |
v2.30.6 | v2.30.7 |
v2.31.5 | v2.31.6 |
v2.32.4 | v2.32.5 |
v2.33.5 | v2.33.6 |
v2.34.5 | v2.34.6 |
v2.35.5 | v2.35.6 |
v2.36.3 | v2.36.4 |
v2.37.4 | v2.37.5 |
v2.38.2 | v2.38.3 |
v2.39.0 | v2.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
- https://thehackernews.com/2023/01/git-users-urged-to-update-software-to.html?m=1
- https://securityonline.info/cve-2022-41903-cve-2022-23521-critical-rce-flaws-in-git/
- https://about.gitlab.com/releases/2023/01/17/critical-security-release-gitlab-15-7-5-released/
- https://github.com/git/git/security/advisories/GHSA-475x-2q3q-hvwq
- https://github.com/git/git/security/advisories/GHSA-c738-c5qq-xg89
- https://nvd.nist.gov/vuln/detail/CVE-2022-41903
- https://nvd.nist.gov/vuln/detail/CVE-2022-23521