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

Vulnerabilidad en los filtros de clean/smudge como Git LFS en un repositorio en Git (CVE-2021-21300)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-59 Incorrecta resolución de una ruta antes de aceder a un fichero (Seguimiento de enlaces)
Fecha de publicación:
09/03/2021
Última modificación:
07/11/2023

Descripción

Git es un sistema de control de revisiones distribuido de código abierto. En las versiones afectadas de Git, un repositorio especialmente diseñado que contiene enlaces simbólicos, así como archivos que usan un filtro clean/smudge como Git LFS, puede hacer que se ejecute un script recién extraído mientras se clona en un sistema de archivos que no distingue entre mayúsculas y minúsculas como NTFS , HFS+ o APFS (es decir, los sistemas de archivos predeterminados en Windows y macOS). Tome en cuenta que los filtros de clean/smudge deben ser configurados para eso. Git para Windows configura Git LFS por defecto y, por lo tanto, es vulnerable. El problema se ha corregido en las versiones publicadas el martes 9 de marzo de 2021. Como solución temporal, si el soporte de enlace simbólico está deshabilitado en Git (por ejemplo, por medio de "git config --global core.symlinks false"), el ataque descrito no funcionará. Del mismo modo, si no se configuran globalmente filtros clean/smudge como Git LFS (es decir,_before_ cloning), el ataque se frustra. Como siempre, es mejor evitar la clonación de repositorios de fuentes no confiables. La primera versión afectada es 2.14.2. Las versiones correctas son: 2.30.1, 2.29.3, 2.28.1, 2.27.1, 2.26.3, 2.25.5, 2.24.4, 2.23.4, 2.22.5, 2.21.4, 2.20.5, 2.19 .6, 2.18.5, 2.17.62.17.6

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.14.2 (incluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.17.0 (incluyendo) 2.17.6 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.18.0 (incluyendo) 2.18.5 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.19.0 (incluyendo) 2.19.6 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.20.0 (incluyendo) 2.20.5 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.21.0 (incluyendo) 2.21.4 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.22.0 (incluyendo) 2.22.5 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.23.0 (incluyendo) 2.23.4 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.24.0 (incluyendo) 2.24.4 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.25.0 (incluyendo) 2.25.5 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.26.0 (incluyendo) 2.26.3 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.29.0 (incluyendo) 2.29.3 (excluyendo)
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:* 2.30.0 (incluyendo) 2.30.2 (excluyendo)
cpe:2.3:a:git-scm:git:2.27.0:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:2.28.0:*:*:*:*:*:*:*