
Proof-of-concept exploit per CVE-2026-5027, una vulnerabilità di path traversal in Langflow che consente la scrittura arbitraria di file e la potenziale esecuzione remota di codice tramite un filename multipart appositamente predisposto.
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
descrizione: 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 costruito fornito all'endpoint /api/v2/files. Nelle distribuzioni in cui l'auto-login è abilitato o l'autenticazione è altrimenti debolmente applicata, questo problema può essere sfruttato per ottenere l'esecuzione remota di codice scrivendo contenuti controllati dall'attaccante in posizioni sensibili del filesystem.
Costruisci ed esegui l'ambiente vulnerabile usando Docker:
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:7860 --name cve-2026-5027 cve-2026-5027
# Validazione non distruttiva (file di prova)
python3 CVE-2026-5027.py -t <HOST_IP>
# Validazione con modalità autenticata
python3 CVE-2026-5027.py -t <HOST_IP> -u <USERNAME> -p <PASSWORD>
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 vincolare 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ò fuoriuscire dalla root di archiviazione prevista e forzare l'applicazione a scrivere file in posizioni arbitrarie sul filesystem del server.
Un flusso di sfruttamento rappresentativo è il seguente:
/api/v2/files.filename appositamente costruito contenente sequenze di path traversal.Questo è fondamentalmente un problema CWE-22: Limitazione Impropria di un Percorso a una Directory Ristretta.
La falla di sicurezza è causata da una sanitizzazione e validazione insufficiente dei percorsi 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 problemi standard di upload senza restrizioni 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:
Attaccante --(Ottiene token di accesso o abusa dell'auto-login)--> Langflow /api/v2/files --(Fornisce filename multipart appositamente costruito con ../)--> Scrittura arbitraria di file al di fuori della directory di upload --(Scrive in posizione sensibile)--> Potenziale Esecuzione Remota di Codice
Questo repository non è inteso a facilitare lo sfruttamento non autorizzato di istanze Langflow. Lo scopo di questo progetto è aiutare ricercatori di sicurezza, difensori e sviluppatori a comprendere la vulnerabilità, validare l'esposizione in ambienti controllati e applicare mitigazioni efficaci.