
Proof-of-Concept-Exploit für CVE-2026-5027, eine Path-Traversal-Schwachstelle in Langflow, die beliebiges Dateischreiben und potenzielle Remote-Code-Ausführung über einen manipulierten Multipart-Dateinamen ermöglicht.
Dieser Beitrag ist ein Forschungsartikel, veröffentlicht von EQSTLab.
Dank an Yahia Hamza, der diese Schwachstelle gemeldet und analysiert hat.
★ CVE-2026-5027 Langflow Path Traversal / Arbitrary File Write PoC ★
CVE-2026-5027 : Langflow Schwachstelle für beliebiges Schreiben von Dateien
Beschreibung: Eine Path-Traversal-Schwachstelle in Langflow <= 1.8.4 ermöglicht es Angreifern, beliebige Dateien außerhalb des vorgesehenen Upload-Verzeichnisses zu schreiben, indem ein manipulierter Multipart-filename an den Endpunkt /api/v2/files übermittelt wird. In Bereitstellungen, in denen Auto-Login aktiviert ist oder die Authentifizierung anderweitig nur schwach durchgesetzt wird, kann dieses Problem ausgenutzt werden, um Remote-Code-Ausführung zu erreichen, indem vom Angreifer kontrollierte Inhalte an sensible Dateisystempfade geschrieben werden.
Erstellen und Ausführen der verwundbaren Umgebung mit Docker:
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:7860 --name cve-2026-5027 cve-2026-5027
# Nicht-destruktive Validierung (Proof-Datei)
python3 CVE-2026-5027.py -t <HOST_IP>
# Validierung mit authentifiziertem Modus
python3 CVE-2026-5027.py -t <HOST_IP> -u <USERNAME> -p <PASSWORD>
Verwundbarer Endpunkt
POST /api/v2/files
Das Problem besteht darin, dass die Upload-Funktionalität dem vom Client bereitgestellten Multipart-filename-Wert vertraut. Anstatt einen sicheren serverseitigen Speichernamen zu generieren oder den aufgelösten Pfad auf ein dediziertes Upload-Verzeichnis zu beschränken, erlaubt der verwundbare Codepfad, dass Traversal-Sequenzen wie ../ den endgültigen Zielpfad beeinflussen.
Infolgedessen kann ein Angreifer das vorgesehene Speicherverzeichnis verlassen und die Anwendung dazu zwingen, Dateien an beliebige Speicherorte im Server-Dateisystem zu schreiben.
Ein repräsentativer Ablauf der Ausnutzung ist wie folgt:
/api/v2/files.filename, der Path-Traversal-Sequenzen enthält.Dies ist grundsätzlich ein CWE-22: Unzureichende Begrenzung eines Pfadnamens auf ein eingeschränktes Verzeichnis-Problem.
Der Sicherheitsfehler wird durch unzureichende Bereinigung und Validierung von benutzerkontrollierten Dateipfaden während der Upload-Verarbeitung verursacht. Die Anwendung akzeptiert den ursprünglichen Client-Dateinamen und übergibt ihn ohne angemessene Durchsetzung von Pfadnormalisierung und -eindämmung an den Speicher-Workflow.
Aus defensiver Sicht ist das gefährliche Muster konzeptionell ähnlich zu folgendem:
save_path = base_dir / file.filename
Wenn file.filename Path-Traversal-Komponenten wie:
../../../../tmp/poc.txt
enthält, kann der endgültig aufgelöste Pfad außerhalb von base_dir liegen, was das Schreiben beliebiger Dateien ermöglicht.
Schwachstellen für das Schreiben beliebiger Dateien sind oft schwerwiegender als Standardprobleme mit uneingeschränktem Upload, da der Angreifer nicht nur den Dateiinhalt, sondern auch den Zielpfad kontrolliert. Abhängig von den Laufzeitberechtigungen des Langflow-Prozesses kann dies Folgendes ermöglichen:
Angreifer --(Zugriffstoken erhalten oder Auto-Login missbrauchen)--> Langflow /api/v2/files --(Manipulierten Multipart-Dateinamen mit ../ übermitteln)--> Beliebiges Schreiben von Dateien außerhalb des Upload-Verzeichnisses --(Schreiben an sensible Speicherorte)--> Potenzielle Remote-Code-Ausführung
Dieses Repository ist nicht dazu gedacht, unbefugte Ausnutzung von Langflow-Instanzen zu erleichtern. Der Zweck dieses Projekts ist es, Sicherheitsforschern, Verteidigern und Entwicklern zu helfen, die Schwachstelle zu verstehen, die Exposition in kontrollierten Umgebungen zu validieren und wirksame Gegenmaßnahmen anzuwenden.