Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Git (CVE-2022-41903)

Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-190 Desbordamiento o ajuste de enteros
Fecha de publicación:
17/01/2023
Última modificación:
27/12/2023

Descripción

Git es un sistema de control de revisiones distribuido. `git log` puede mostrar confirmaciones en un formato arbitrario usando 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()`. Este desbordamiento puede ser desencadenado directamente por un usuario que ejecuta un comando que invoca la maquinaria de formato de commit (por ejemplo, `git log --format=...`). También se puede activar indirectamente a través del archivo git mediante el mecanismo export-subst, que expande los especificadores de formato dentro de los archivos dentro del repositorio durante un archivo git. Este desbordamiento de enteros puede dar lugar a escrituras arbitrarias en el almacenamiento dinámico, lo que puede dar lugar a la ejecución de código arbitrario. El problema ha sido solucionado en las versiones publicadas el 17-01-2023, remontándose a la v2.30.7. Se recomienda a los usuarios que actualicen. Los usuarios que no puedan actualizar deben desactivar "git archive" en repositorios que no sean de confianza. Si expone el archivo git a través de `git daemon`, desactívelo ejecutando `git config --global daemon.uploadArch false`.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.30.6 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.31.0 (incluyendo) 2.31.5 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.32.0 (incluyendo) 2.32.4 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.33.0 (incluyendo) 2.33.5 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.34.0 (incluyendo) 2.34.5 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.35.0 (incluyendo) 2.35.5 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.36.0 (incluyendo) 2.36.3 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.37.0 (incluyendo) 2.37.4 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.38.0 (incluyendo) 2.38.2 (incluyendo)
cpe:2.3:a:git-scm:git:2.39.0:*:*:*:*:*:*:*