
Prueba de concepto para CVE-2024-52005: inyección de secuencias de escape ANSI en Git. Demuestra afirmaciones incorrectas de 'not_affected' en VEX en imágenes de contenedor endurecidas.
Este repositorio contiene una Prueba de Concepto (PoC) que demuestra CVE-2024-52005, una vulnerabilidad en Git que permite la inyección de secuencias de escape ANSI a través del canal sideband durante operaciones de Git.
CVE-2024-52005 es una vulnerabilidad de Alta gravedad (CVSS 7.5) que afecta a versiones de Git anteriores a 2.48.1, 2.47.3, 2.46.5, 2.45.4 y 2.44.3.
Esta PoC fue creada para demostrar que ciertas imágenes de contenedor endurecidas afirman incorrectamente el estado "not_affected" en sus documentos VEX (Vulnerability Exploitability eXchange), a pesar de incluir versiones vulnerables de Git.
La vulnerabilidad permite a los atacantes:
Prueba directamente contra el contenedor DHI ArgoCD usando este repositorio de GitHub:
docker run --rm -it dhi.io/argocd:3 sh -c '
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git /tmp/poc &&
cd /tmp/poc &&
sh docker-test.sh
'
Este comando:
Si ves ^[[31m o ^[[32m en la salida, la vulnerabilidad está confirmada.
Clona el repositorio y ejecuta la prueba localmente:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
Este script:
# Create malicious repository with social engineering payload
./exploit_cve_2024_52005.py create social_engineering
# Test against vulnerable container
./exploit_cve_2024_52005.py test
# View results
cat -v /tmp/cve-2024-52005-output.log
Attacker creates public GitHub repo → ArgoCD clones it automatically →
Git hook injects ANSI codes → Hides backdoor in deployment logs
Developer clones repo → Malicious hook runs → Injects fake "Build PASSED" →
Real failures hidden → Vulnerable code deployed to production
Security scanner clones repo → Hook injects ANSI codes →
Shows "0 vulnerabilities" → Real vulnerabilities hidden →
Malicious code passes review
El framework incluye 8 payloads de ataque preconstruidos:
Muchas imágenes de contenedor afirman "not_affected" para CVE-2024-52005 con la justificación:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
Esto es incorrecto para contenedores diseñados para clonar repositorios no confiables:
El atacante sí controla la ruta de código vulnerable a través de hooks de Git y mensajes sideband.
Versiones de Git afectadas por CVE-2024-52005:
Actualiza a una versión parcheada:
# Check your version
git --version
# Update via package manager
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
Si no puedes actualizar de inmediato:
# Test any container image
docker run --rm -v $(pwd)/ansi-test-repo:/repo:ro YOUR_IMAGE:TAG \
sh -c 'git clone /repo /tmp/test 2>&1' | cat -v
# Look for ANSI codes like ^[[31m in the output
Esta PoC fue creada para:
Solo para pruebas de seguridad autorizadas. No uses esto contra sistemas que no poseas o para los que no tengas permiso de prueba.
Licencia MIT - Consulta el archivo LICENSE para más detalles
Creado como parte de la investigación de seguridad de imágenes de contenedor, demostrando la importancia de una divulgación y evaluación precisa de vulnerabilidades.
¿Encontraste un problema o tienes mejoras? ¡Las solicitudes de extracción son bienvenidas!