
Prova di concetto per CVE-2024-52005: iniezione di sequenze di escape ANSI in Git. Dimostra affermazioni VEX 'not_affected' errate in immagini di container rafforzati.
Questo repository contiene un Proof-of-Concept (PoC) che dimostra CVE-2024-52005, una vulnerabilità in Git che permette l'iniezione di sequenze di escape ANSI attraverso il canale sideband durante le operazioni Git.
CVE-2024-52005 è una vulnerabilità di Alta gravità (CVSS 7.5) che colpisce le versioni di Git precedenti a 2.48.1, 2.47.3, 2.46.5, 2.45.4 e 2.44.3.
Questo PoC è stato creato per dimostrare che alcune immagini container hardened dichiarano erroneamente lo stato 'not_affected' nei loro documenti VEX (Vulnerability Exploitability eXchange), nonostante includano versioni vulnerabili di Git.
La vulnerabilità consente agli aggressori di:
Testa direttamente contro il container DHI ArgoCD usando questo repository 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
'
Questo comando:
Se vedi ^[[31m o ^[[32m nell'output, la vulnerabilità è confermata.
Clona il repository ed esegui il test localmente:
git clone https://github.com/andrewd-cg/cve-2024-52005-poc.git
cd cve-2024-52005-poc
./test_ansi_injection.sh
Questo script:
# Crea repository dannoso con payload di social engineering
./exploit_cve_2024_52005.py create social_engineering
# Testa contro container vulnerabile
./exploit_cve_2024_52005.py test
# Visualizza i risultati
cat -v /tmp/cve-2024-52005-output.log
L'aggressore crea un repository GitHub pubblico → ArgoCD lo clona automaticamente → L' hook Git inietta codici ANSI → Nasconde backdoor nei log di deployment
Lo sviluppatore clona il repository → L' hook dannoso viene eseguito → Inietta falso 'Build SUPERATA' → I veri fallimenti sono nascosti → Codice vulnerabile distribuito in produzione
Lo scanner di sicurezza clona il repository → L' hook inietta codici ANSI → Mostra '0 vulnerabilità' → Le vere vulnerabilità sono nascoste → Il codice dannoso supera la revisione
Il framework include 8 payload di attacco predefiniti:
Molte immagini container dichiarano 'not_affected' per CVE-2024-52005 con la giustificazione:
{
"justification": "vulnerable_code_cannot_be_controlled_by_adversary"
}
Questo è errato per container progettati per clonare repository non fidati:
L'aggressore controlla effettivamente il percorso del codice vulnerabile attraverso gli hook Git e i messaggi sideband.
Versioni di Git affette da CVE-2024-52005:
Aggiorna a una versione corretta:
# Controlla la tua versione
git --version
# Aggiorna tramite gestore pacchetti
apt update && apt upgrade git # Debian/Ubuntu
brew upgrade git # macOS
Se non puoi aggiornare immediatamente:
# Testa qualsiasi immagine container
docker run --rm -v $(pwd)/ansi-test-repo:/repo:ro YOUR_IMAGE:TAG \
sh -c 'git clone /repo /tmp/test 2>&1' | cat -v
# Cerca codici ANSI come ^[[31m nell'output
Questo PoC è stato creato per:
Solo per test di sicurezza autorizzati. Non utilizzare questo contro sistemi che non possiedi o per cui non hai permessi di test.
Licenza MIT - Vedi file LICENSE per i dettagli
Creato come parte della ricerca sulla sicurezza delle immagini container, dimostrando l'importanza di una divulgazione e valutazione accurata delle vulnerabilità.
Trovato un problema o hai miglioramenti? Le pull request sono benvenute!