
Reconstrução independente, validação em laboratório e PoC para CVE-2026-9198, o RCE não autenticado do Langflow (corrigido na 1.10.1)
Reconstrução independente, validação em laboratório e divulgação de exposição para a injeção de código no Langflow (CVE-2026-9198), uma execução remota de código não autenticada com CVSS 9.8 em implantações padrão do Langflow 1.0.0 até 1.10.0. Corrigida na 1.10.1 e adicionada ao catálogo Known Exploited Vulnerabilities da CISA em 2026-08-04.
Janela de pesquisa: 17-18 de agosto de 2026. Toda a exploração foi realizada exclusivamente contra instâncias de laboratório de nossa propriedade.
Relatório na web: https://riftweld.github.io/langflow-cve-2026-9198/
Este não é o relatório de descoberta original. A CVE-2026-9198 foi divulgada publicamente pela IBM e pela CISA; este repositório documenta uma reconstrução independente da causa raiz, uma reprodução em laboratório e uma campanha coordenada de notificação a provedores de hospedagem.
| Caminho | Descrição |
|---|---|
WRITEUP.md | Relatório completo: causa raiz, a cadeia, diferencial de laboratório, exposição e a divulgação pela rota dos provedores |
LAB-VALIDATION.md | Registro de laboratório: reprodução na 1.10.0 e o diferencial da 1.10.1 corrigida |
poc/poc_takeover.py | PoC de laboratório ponta a ponta (somente laboratório, edite o host de destino primeiro) |
poc/poc_transcript.md | Execução do PoC capturada contra nossos contêineres de laboratório |
recon/shodan_langflow_recon.py | Enumeração passiva de exposição (API do Shodan, sem sondagem ativa) |
notifications/ | Cópias dos oito e-mails de notificação enviados às equipes de abuso dos provedores de hospedagem (tabelas por instância omitidas) |
GET /api/v1/auto_login em implantações padrão (LANGFLOW_AUTO_LOGIN=true)
retornava um JWT de superusuário de longa duração sem credenciais.POST /api/v1/validate/code executava definições de função enviadas e
ecoava a saída de comandos de volta na resposta HTTP: execução de código
totalmente não autenticada.langflowai/langflow:1.10.0 em um laboratório isolado; o controle na 1.10.1 fecha
ambas as metades (tokens de curta duração; sink de execução vazio).Somente laboratório. Inicie um contêiner Langflow vulnerável e aponte o script para ele:
docker run -d --name lf-lab -p 127.0.0.1:7860:7860 \
-e LANGFLOW_AUTO_LOGIN=true langflowai/langflow:1.10.0
python3 poc/poc_takeover.py --url http://127.0.0.1:7860 --cmd "id"
Nunca execute isto contra sistemas de terceiros. Os achados de exposição foram tratados por meio dos canais de abuso dos provedores de hospedagem; os registros por alvo intencionalmente não são publicados.
| Data | Evento |
|---|---|
| 2026-06-23 | Langflow 1.10.1 lançada (correção) |
| 2026-07-02 | Boletim da IBM |
| 2026-07-06 | Primeiros acionamentos de sensores em campo (antes da publicação) |
| 2026-07-17 | CVE publicada |
| 2026-07-29 | Template público do nuclei mesclado |
| 2026-08-04 | Inclusão na KEV da CISA (remediação até 08-07) |
| 2026-08-17/18 | Esta reconstrução independente, validação em laboratório e notificações aos provedores |
O código é fornecido como está, para uso defensivo e educacional.