
Preuve de concept pour CVE-2024-52005 : injection de séquence d'échappement ANSI dans Git. Démontre des revendications VEX 'not_affected' incorrectes dans des images de conteneurs durcies.
Ce dépôt contient une preuve de concept (PoC) démontrant la CVE-2024-52005, une vulnérabilité dans Git qui permet l'injection de séquences d'échappement ANSI via le canal sideband lors des opérations Git.
CVE-2024-52005 est une vulnérabilité de Haute sévérité (CVSS 7.5) affectant les versions de Git antérieures à 2.48.1, 2.47.3, 2.46.5, 2.45.4 et 2.44.3.
Cette PoC a été créée pour démontrer que certaines images de conteneurs durcies indiquent à tort un statut « not_affected » dans leurs documents VEX (Vulnerability Exploitability eXchange), bien qu'elles embarquent des versions vulnérables de Git.
La vulnérabilité permet aux attaquants de :
Testez directement avec le conteneur DHI ArgoCD en utilisant ce dépôt 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
'
Cette commande :
Si vous voyez ^[[31m ou ^[[32m dans la sortie, la vulnérabilité est confirmée.
Clonez le dépôt et exécutez le test localement :
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
Ce script va :
# Créer un dépôt malveillant avec payload d'ingénierie sociale
./exploit_cve_2024_52005.py create social_engineering
# Tester contre un conteneur vulnérable
./exploit_cve_2024_52005.py test
# Voir les résultats
cat -v /tmp/cve-2024-52005-output.log
Attaquant crée un dépôt GitHub public → ArgoCD le clone automatiquement →
Le hook Git injecte des codes ANSI → Cache une porte dérobée dans les journaux de déploiement
Développeur clone le dépôt → Le hook malveillant s'exécute → Injecte un faux « Build PASSÉ » →
Les échecs réels sont cachés → Code vulnérable déployé en production
Scanner de sécurité clone le dépôt → Le hook injecte des codes ANSI →
Affiche « 0 vulnérabilités » → Les vraies vulnérabilités sont cachées →
Le code malveillant passe la revue
Le framework inclut 8 payloads d'attaque pré-construits :
De nombreuses images de conteneurs indiquent « not_affected » pour la CVE-2024-52005 avec la justification :
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
Ceci est incorrect pour les conteneurs conçus pour cloner des dépôts non fiables :
L'attaquant contrôle effectivement le chemin de code vulnérable via les hooks Git et les messages sideband.
Versions de Git affectées par la CVE-2024-52005 :
Mettez à jour vers une version corrigée :
# Vérifiez votre version
git --version
# Mise à jour via le gestionnaire de paquets
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
Si vous ne pouvez pas mettre à jour immédiatement :
# Tester n'importe quelle image de conteneur
docker run --rm -v $(pwd)/ansi-test-repo:/repo:ro VOTRE_IMAGE:TAG \
sh -c 'git clone /repo /tmp/test 2>&1' | cat -v
# Cherchez des codes ANSI comme ^[[31m dans la sortie
Cette PoC a été créée pour :
Pour les tests de sécurité autorisés uniquement. N'utilisez pas ceci contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester.
Licence MIT - Voir le fichier LICENSE pour les détails
Créé dans le cadre de la recherche sur la sécurité des images de conteneurs, démontrant l'importance d'une divulgation et d'une évaluation précises des vulnérabilités.
Vous avez trouvé un problème ou des améliorations ? Les pull requests sont les bienvenues !