
Prova de conceito de exploit para CVE-2026-5027, uma vulnerabilidade de path traversal no Langflow que permite escrita arbitrária de arquivos e potencial execução remota de código por meio de nome de arquivo multipart manipulado.
Este post é um artigo de pesquisa publicado por EQSTLab.
Agradecimentos a Yahia Hamza, que relatou e analisou esta vulnerabilidade.
★ CVE-2026-5027 Langflow Path Traversal / Arbitrary File Write PoC ★
CVE-2026-5027 : Vulnerabilidade de Gravação Arbitrária de Arquivos no Langflow
descrição: Uma vulnerabilidade de path traversal no Langflow <= 1.8.4 permite que atacantes gravem arquivos arbitrários fora do diretório de upload pretendido por meio de um filename multipart manipulado enviado ao endpoint /api/v2/files. Em implantações onde o auto-login está habilitado ou a autenticação é fracamente aplicada de outra forma, este problema pode ser explorado para alcançar execução remota de código ao gravar conteúdo controlado pelo atacante em locais sensíveis do sistema de arquivos.
Crie e execute o ambiente vulnerável usando Docker:
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:7860 --name cve-2026-5027 cve-2026-5027
# Validação não destrutiva (arquivo de prova)
python3 CVE-2026-5027.py -t <HOST_IP>
# Validação com modo autenticado
python3 CVE-2026-5027.py -t <HOST_IP> -u <USERNAME> -p <PASSWORD>
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 traversal como ../ influenciem o caminho de destino final.
Como resultado, um atacante pode escapar da raiz de armazenamento pretendida e forçar o aplicativo a gravar 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.Isso é fundamentalmente um problema de CWE-22: Limitação Imprópria de um Nome de Caminho a um Diretório Restrito.
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. O aplicativo aceita o nome de arquivo original do cliente e o passa para o fluxo de trabalho 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 final resolvido pode apontar para fora de base_dir, permitindo gravação arbitrária de arquivos.
Vulnerabilidades de gravação 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 Langflow, isso pode permitir:
Atacante --(Obtém token de acesso ou abusa do auto-login)--> Langflow /api/v2/files --(Fornece filename multipart manipulado com ../)--> Gravação arbitrária de arquivos fora do diretório de upload --(Grava em local sensível)--> Potencial Execução Remota de Código
Este repositório não se destina a facilitar exploração não autorizada de instâncias Langflow. O propósito 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.