
Preuve de concept d'exploitation pour CVE-2026-5027, une vulnérabilité de traversée de chemin dans Langflow permettant l'écriture arbitraire de fichiers et une potentielle exécution de code à distance via un nom de fichier multipart spécialement conçu.
Cet article est un article de recherche publié par EQSTLab.
Merci à Yahia Hamza, qui a signalé et analysé cette vulnérabilité.
★ CVE-2026-5027 Langflow Path Traversal / Arbitrary File Write PoC ★
CVE-2026-5027 : Vulnérabilité d'écriture arbitraire de fichiers dans Langflow
description : Une vulnérabilité de path traversal dans Langflow <= 1.8.4 permet aux attaquants d'écrire des fichiers arbitraires en dehors du répertoire de téléversement prévu via un filename multipart malveillant fourni au point de terminaison /api/v2/files. Dans les déploiements où la connexion automatique est activée ou où l'authentification est autrement faiblement appliquée, ce problème peut être exploité pour obtenir une exécution de code à distance en écrivant du contenu contrôlé par l'attaquant dans des emplacements sensibles du système de fichiers.
Construisez et exécutez l'environnement vulnérable à l'aide de Docker :
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:7860 --name cve-2026-5027 cve-2026-5027
# Validation non destructive (fichier de preuve)
python3 CVE-2026-5027.py -t <HOST_IP>
# Validation avec mode authentifié
python3 CVE-2026-5027.py -t <HOST_IP> -u <USERNAME> -p <PASSWORD>
Point de terminaison vulnérable
POST /api/v2/files
Le problème existe parce que la fonctionnalité de téléversement fait confiance à la valeur filename multipart fournie par le client. Au lieu de générer un nom de stockage sécurisé côté serveur ou de contraindre le chemin résolu à un répertoire de téléversement dédié, le chemin de code vulnérable permet à des séquences de traversal telles que ../ d'influencer le chemin de destination final.
En conséquence, un attaquant peut s'échapper de la racine de stockage prévue et forcer l'application à écrire des fichiers dans des emplacements arbitraires du système de fichiers du serveur.
Un flux d'exploitation représentatif est le suivant :
/api/v2/files.filename malveillant contenant des séquences de path traversal.Il s'agit fondamentalement d'un problème CWE-22 : Limitation inappropriée d'un nom de chemin à un répertoire restreint.
La faille de sécurité est causée par une assainissement et une validation insuffisants des chemins de fichiers contrôlés par l'utilisateur lors du traitement du téléversement. L'application accepte le nom de fichier d'origine du client et le transmet au flux de travail de stockage sans appliquer correctement la normalisation et le confinement du chemin.
D'un point de vue défensif, le schéma dangereux est conceptuellement similaire à ce qui suit :
save_path = base_dir / file.filename
Si file.filename contient des composants de path traversal tels que :
../../../../tmp/poc.txt
le chemin final résolu peut pointer en dehors de base_dir, permettant une écriture de fichier arbitraire.
Les vulnérabilités d'écriture de fichiers arbitraires sont souvent plus graves que les problèmes de téléversement non restreint standard, car l'attaquant contrôle non seulement le contenu du fichier, mais aussi le chemin de destination. Selon les privilèges d'exécution du processus Langflow, cela peut permettre :
Attaquant --(Obtient un jeton d'accès ou abuse de la connexion automatique)--> Langflow /api/v2/files --(Fournit un nom de fichier multipart malveillant avec ../)--> Écriture de fichier arbitraire en dehors du répertoire de téléversement --(Écrit dans un emplacement sensible)--> Exécution de code à distance potentielle
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.