
Proof-of-Concept für CVE-2024-52005: Einschleusung von ANSI-Escape-Sequenzen in Git. Demonstriert fehlerhafte 'not_affected'-VEX-Angaben in gehärteten Container-Images.
Dieses Repository enthält einen Proof-of-Concept (PoC), der CVE-2024-52005 demonstriert, eine Schwachstelle in Git, die die Injection von ANSI-Escape-Sequenzen über den Sideband-Kanal während Git-Operationen ermöglicht.
CVE-2024-52005 ist eine Schwachstelle mit hohem Schweregrad (CVSS 7.5), die Git-Versionen vor 2.48.1, 2.47.3, 2.46.5, 2.45.4 und 2.44.3 betrifft.
Dieser PoC wurde erstellt, um zu zeigen, dass bestimmte gehärtete Container-Images in ihren VEX-Dokumenten (Vulnerability Exploitability eXchange) fälschlicherweise den Status "not_affected" beanspruchen, obwohl sie verwundbare Git-Versionen ausliefern.
Die Schwachstelle ermöglicht Angreifern Folgendes:
Testen Sie direkt gegen den DHI-ArgoCD-Container mit diesem GitHub-Repo:
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
'
Dieser Befehl:
Wenn Sie ^[[31m oder ^[[32m in der Ausgabe sehen, ist die Schwachstelle bestätigt.
Klonen Sie das Repo und führen Sie den Test lokal aus:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
Dieses Skript wird:
# 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
Das Framework enthält 8 vorgefertigte Angriffs-Payloads:
Viele Container-Images beanspruchen für CVE-2024-52005 den Status "not_affected" mit der Begründung:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
Das ist falsch für Container, die dafür ausgelegt sind, nicht vertrauenswürdige Repositories zu klonen:
Der Angreifer hat sehr wohl Kontrolle über den verwundbaren Codepfad durch Git-Hooks und Sideband-Nachrichten.
Von CVE-2024-52005 betroffene Git-Versionen:
Aktualisieren Sie auf eine gepatchte Version:
# Check your version
git --version
# Update via package manager
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
Wenn Sie nicht sofort aktualisieren können:
# 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
Dieser PoC wurde erstellt für:
Nur für autorisierte Sicherheitstests. Verwenden Sie dies nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine Testberechtigung haben.
MIT-Lizenz - Einzelheiten finden Sie in der Datei LICENSE
Erstellt im Rahmen der Sicherheitsforschung zu Container-Images, um die Bedeutung einer korrekten Offenlegung und Bewertung von Schwachstellen zu demonstrieren.
Einen Fehler gefunden oder Verbesserungsvorschläge? Pull-Requests sind willkommen!