Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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-55255-Lab — # Laboratoire Docker local pour reproduire CVE-2026-55255, une vulnérabilité IDOR dans l'API Responses de Langflow. Valide l'exécution de flux inter-utilisateurs dans les versions vulnérables vs. corrigées avec un PoC basé sur des requêtes. | Kitploit
Outils/GitHubGitHub/rootdirective-sec/cve-2026-55255-lab
Analyse des VulnérabilitésExploitation d'Applications WebTests de Sécurité des APITests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubrootdirective-sec/cve-2026-55255-lab

CVE-2026-55255-Lab

# Laboratoire Docker local pour reproduire CVE-2026-55255, une vulnérabilité IDOR dans l'API Responses de Langflow. Valide l'exécution de flux inter-utilisateurs dans les versions vulnérables vs. corrigées avec un PoC basé sur des requêtes.

Voir le dépôt
11il y a 3 moisPas 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-55255 - Langflow IDOR in /api/v1/responses

Résumé exécutif

Ce dépôt contient un laboratoire Docker local pour reproduire et valider CVE-2026-55255, une vulnérabilité de type Insecure Direct Object Reference (IDOR) affectant l'API Responses compatible OpenAI de Langflow.

Langflow est une plateforme open-source pour construire et déployer des agents et des workflows propulsés par l'IA. Le comportement vulnérable affecte le point de terminaison /api/v1/responses, où un attaquant authentifié peut fournir l'UUID de flux d'un autre utilisateur comme valeur model et amener Langflow à exécuter ce flux appartenant à la victime.

Ce laboratoire compare deux versions de Langflow :

ServiceLangflow versionObjectifURL
vuln1.9.0Cible de comparaison vulnérablehttp://localhost:7860
patched1.9.1Cible de comparaison corrigéehttp://localhost:7861

Le chemin de validation HTTP démontré dans ce laboratoire local est :```text Authenticated attacker API key → POST /api/v1/responses → request body sets model to victim-owned flow UUID → vulnerable target executes the victim-owned flow → patched target returns flow_not_found and does not execute the victim-owned flow

Dans la cible vulnérable, la clé API appartenant à l'attaquant peut exécuter le flux appartenant à la victime et la réponse contient le marqueur réservé à la victime :```text
VICTIM_ONLY_CONTEXT_55255_VULN

Dans la cible corrigée, la même requête inter-utilisateurs ne renvoie pas le marqueur de la victime et retourne un corps d'erreur de style OpenAI :```json {"error":{"message":"Flow with id '' not found","type":"invalid_request_error","code":"flow_not_found"}}

Ce laboratoire valide le comportement HTTP vulnérable versus patché en utilisant Langflow 1.9.0 et Langflow 1.9.1.

Le laboratoire est volontairement limité aux services Docker locaux. Il ne cible pas de systèmes externes et n'inclut pas de vol d'identifiants, d'extraction de bases de données, de charges utiles destructrices, de rappels externes, de logiciels malveillants, de persistance ou d'activités de post-exploitation.

## Faits vérifiés

| Affirmation | Preuve | Comment vérifier dans ce laboratoire |
| ----- | -------- | ------------------------- |
| CVE-2026-55255 affecte le point de terminaison `/api/v1/responses` de Langflow. | L'avis GitHub GHSA-qrpv-q767-xqq2 décrit un IDOR dans `/api/v1/responses`. | Consultez la section Références et exécutez le PoC contre les deux cibles locales. |
| L'avis GitHub liste les versions affectées comme `< 1.9.1` et la version corrigée comme `1.9.1`. | Avis GitHub GHSA-qrpv-q767-xqq2. | Comparez les versions cibles vulnérable et patchée dans `docker-compose.yml`. |
| Certaines sources aval de vulnérabilités ne s'accordent pas sur la version corrigée exacte. | GitHub/GitLab listent `1.9.1` comme corrigé ; certaines pages aval d'intelligence mentionnent `1.9.2` ou contiennent un libellé mixte. | Consultez la section Références et fiez-vous à la validation du laboratoire pour le comportement testé de 1.9.1. |
| Ce laboratoire utilise Langflow 1.9.0 comme cible de comparaison vulnérable. | Le service `vuln` utilise `langflowai/langflow:1.9.0`. | Inspectez `docker-compose.yml` et exécutez `docker compose ps`. |
| Ce laboratoire utilise Langflow 1.9.1 comme cible de comparaison patchée. | Le service `patched` utilise `langflowai/langflow:1.9.1`. | Inspectez `docker-compose.yml` et exécutez `docker compose ps`. |
| L'API Responses de Langflow utilise `POST /api/v1/responses`. | La documentation Langflow décrit le point de terminaison de l'API Responses compatible OpenAI. | Exécutez le PoC ou une requête curl manuelle vers `/api/v1/responses`. |
| L'API Responses de Langflow accepte un ID de flux comme valeur `model`. | La documentation Langflow indique que la valeur `model` est remplacée par un `flow_id`. | Inspectez le corps de la requête du PoC. |
| Les requêtes API Langflow nécessitent une clé API via `x-api-key`. | La documentation de l'API Langflow décrit l'authentification par clé API avec l'en-tête `x-api-key`. | Inspectez les en-têtes de la requête du PoC. |
| Le PoC est basé sur des requêtes. | `poc/validate_idor.py` envoie des requêtes HTTP et n'appelle pas Docker, Docker Compose, de commandes shell ni d'API de conteneurs. | Inspectez `poc/validate_idor.py`. |
| La cible vulnérable exécute un flux appartenant à la victime avec une clé API appartenant à l'attaquant. | La réponse vulnérable renvoie `VICTIM_ONLY_CONTEXT_55255_VULN`. | Exécutez la commande PoC vulnérable avec l'ID de flux de la victime et la clé API de l'attaquant. |
| La cible patchée bloque le même chemin d'exécution inter-utilisateurs. | La réponse patchée renvoie `error.code = flow_not_found` et ne renvoie pas le marqueur de la victime. | Exécutez la commande PoC patchée avec l'ID de flux de la victime et la clé API de l'attaquant. |

## Hypothèses et inconnues

Ce laboratoire utilise Langflow 1.9.0 comme cible de comparaison vulnérable parce que l'avis GitHub GHSA-qrpv-q767-xqq2 identifie les versions antérieures à 1.9.1 comme affectées, et que les tests locaux ont confirmé le comportement vulnérable dans 1.9.0.

Ce laboratoire utilise Langflow 1.9.1 comme cible de comparaison patchée parce que l'avis GitHub GHSA-qrpv-q767-xqq2 liste 1.9.1 comme version corrigée, et que les tests locaux ont confirmé que 1.9.1 bloque le chemin d'exécution inter-utilisateurs testé de `/api/v1/responses` avec `flow_not_found`.

Il existe un écart de version entre les sources. Les avis GitHub et GitLab listent les versions antérieures à 1.9.1 comme affectées et 1.9.1 comme corrigée. Certaines pages aval d'intelligence sur les vulnérabilités mentionnent 1.9.2 ou contiennent un libellé mixte autour de la version corrigée. Ce référentiel documente cet écart et valide directement le comportement testé :```text
Langflow 1.9.0
→ attacker API key + victim flow UUID
→ victim marker returned
→ vulnerable behavior observed

Langflow 1.9.1
→ attacker API key + victim flow UUID
→ flow_not_found
→ victim marker not returned
→ blocked behavior observed

Ce laboratoire suppose que l'attaquant connaît déjà l'UUID d'un flux victime. La PoC n'effectue pas de force brute sur les identifiants de flux, n'énumère pas les flux et ne tente pas de découvrir les identifiants de flux victimes.

Ce laboratoire se concentre sur le comportement HTTP observable de :```text POST /api/v1/responses

avec cette forme de requête:```json
{
  "model": "<victim-flow-id>",
  "input": "cross-user CVE-2026-55255 validation request",
  "stream": false
}

Le lab démontre l'exécution non autorisée de flows cross-user dans la cible vulnérable et le comportement bloqué dans la cible corrigée.

Le lab ne démontre pas :

  • le brute-force des UUID de flows,
  • l'énumération des ID de flows,
  • le vol d'identifiants,
  • le dump de bases de données,
  • l'utilisation de vraies clés API de fournisseurs LLM,
  • l'accès à de vraies données de production,
  • les callbacks externes,
  • l'exécution de commandes à distance,
  • les malwares,
  • la persistance,
  • ou des attaques contre des systèmes hors lab.

Résumé de la cause racine

La cause racine de la CVE-2026-55255 est une lacune d'autorisation dans la logique de résolution de flows de Langflow.

Le endpoint /api/v1/responses accepte un UUID de flow via le champ model. Dans les versions vulnérables, le chemin de recherche d'UUID dans get_flow_by_id_or_endpoint_name() pouvait charger un objet Flow directement par clé primaire sans vérifier que le Flow.user_id résolu correspondait à l'utilisateur authentifié par clé API.

Télécharger l’outil