
PoC et guide de détection pour la RCE critique non authentifiée dans IBM Langflow OSS, couvrant le contournement du jeton auto_login et l'évaluation Python non sécurisée de /validate/code.
Vulnérabilité critique d'exécution de code à distance non authentifiée affectant IBM Langflow OSS.
La vulnérabilité résulte de l'enchaînement de deux faiblesses :
/api/v1/auto_login peut délivrer un jeton porteur SUPERUSER privilégié à un appelant réseau non authentifié./api/v1/validate/code traite du code Python contrôlé par l'attaquant dans un contexte d'exécution non sécurisé.Enchaînées, ces faiblesses peuvent aboutir à l'exécution de code Python arbitraire avec les privilèges du processus backend Langflow.
La vulnérabilité a un score CVSS v3.1 de 9.8 (Critique) et est classifiée comme CWE-94 — Contrôle inadéquat de la génération de code.
| Produit | Versions vulnérables | Version corrigée |
|---|---|---|
| IBM Langflow OSS | 1.0.0 – 1.10.0 | 1.10.1 |
IBM recommande de mettre à niveau vers Langflow OSS 1.10.1.
CVSS : 9.8 Critique
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attaquant non authentifié
|
v
/api/v1/auto_login
|
| jeton porteur SUPERUSER
v
/api/v1/validate/code
|
| Évaluation Python non sécurisée
v
Exécution de code à distance
|
v
Processus backend Langflow
Le problème de sécurité important n'est pas simplement l'existence de l'un ou l'autre de ces points de terminaison. L'impact provient de la combinaison d'une primitive de contournement de l'authentification / d'émission de jeton avec un mécanisme non sécurisé de validation de code.
Une exploitation réussie peut fournir à un attaquant une exécution de code dans le contexte de sécurité du backend Langflow.
Selon le déploiement, cela peut exposer :
L'impact pratique dépend donc fortement des privilèges et de l'accès réseau dont dispose le processus Langflow.
Les requêtes suivantes sont destinées à une identification non destructive et ne contiennent pas de charge utile d'exécution de code.
GET / HTTP/1.1
Host: TARGET
Accept: */*
Connection: close
GET /docs HTTP/1.1
Host: TARGET
Accept: text/html,*/*
Connection: close
GET /api/v1/auto_login HTTP/1.1
Host: TARGET
Accept: application/json
Connection: close
Pour un test défensif, relevez le code de statut, les en-têtes et la structure de la réponse plutôt que de chercher à utiliser d'éventuels éléments d'identification renvoyés.
Un schéma de télémétrie défensive utile est :
/api/v1/auto_login
suivi peu après par
/api/v1/validate/code
Une source émettant ces requêtes sans le trafic frontal Langflow normal qui les entoure mérite particulièrement d'être investiguée.
Ne testez pas la vulnérabilité en soumettant du code Python arbitraire à /api/v1/validate/code contre une instance de production.
Une procédure de validation sûre est :
1. Identifier la version de Langflow
2. Confirmer si elle est <= 1.10.0
3. Examiner les journaux d'accès des points de terminaison concernés
4. Vérifier toute émission inattendue de jeton SUPERUSER
5. Rechercher dans les journaux du processus/de l'application toute exécution Python suspecte
6. Mettre à niveau vers 1.10.1
7. Renouveler les identifiants potentiellement exposés
8. Investiguer l'hôte si une exploitation est suspectée
Surveillez :
POST /api/v1/validate/code
GET /api/v1/auto_login
POST /api/v1/auto_login
Les comportements particulièrement suspects incluent :
/api/v1/auto_login200 OK contenant un access_tokenauto_login immédiatement suivie de /api/v1/validate/codeMettez à niveau Langflow OSS vers :
1.10.1 ou version ultérieure
IBM recommande spécifiquement de mettre à niveau vers 1.10.1.
Si une exploitation est suspectée, l'application du correctif à elle seule ne doit pas être considérée comme suffisante. Examinez les journaux et la télémétrie de l'hôte, et renouvelez les secrets qui ont pu être accessibles au processus Langflow.
La CISA a ajouté CVE-2026-9198 à son catalogue des vulnérabilités connues exploitées (KEV) le 4 août 2026.
Ce dépôt est destiné à la recherche en sécurité autorisée, à l'analyse de vulnérabilités, à l'ingénierie de détection et aux environnements de laboratoire contrôlés.
| Métrique | Valeur |
|---|
| Vecteur d'attaque | Réseau |
| Complexité d'attaque | Faible |
| Privilèges requis | Aucun |
| Interaction utilisateur | Aucune |
| Confidentialité | Élevée |
| Intégrité | Élevée |
| Disponibilité | Élevée |
| Périmètre | Inchangé |