
PoC e guia de detecção para a RCE crítica não autenticada no IBM Langflow OSS, cobrindo o bypass do token auto_login e a avaliação insegura de Python em /validate/code.
Vulnerabilidade crítica de execução remota de código não autenticada que afeta o IBM Langflow OSS.
A vulnerabilidade resulta do encadeamento de duas fragilidades:
/api/v1/auto_login pode emitir um token de portador (bearer token) privilegiado SUPERUSER para um chamador de rede não autenticado./api/v1/validate/code processa código Python controlado pelo atacante em um contexto de execução inseguro.Quando combinadas, essas fragilidades podem resultar na execução arbitrária de código Python com os privilégios do processo de backend do Langflow.
A vulnerabilidade tem uma pontuação CVSS v3.1 de 9.8 (Crítica) e é classificada como CWE-94 — Controle Incorreto da Geração de Código.
| Produto | Versões Vulneráveis | Versão Corrigida |
|---|---|---|
| IBM Langflow OSS | 1.0.0 – 1.10.0 | 1.10.1 |
A IBM recomenda atualizar para Langflow OSS 1.10.1.
CVSS: 9.8 Crítica
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated attacker
|
v
/api/v1/auto_login
|
| SUPERUSER bearer token
v
/api/v1/validate/code
|
| Unsafe Python evaluation
v
Remote Code Execution
|
v
Langflow backend process
O importante problema de segurança não é simplesmente o fato de algum desses endpoints existir. O impacto vem da combinação de uma primitiva de bypass de autenticação/emissão de token com um mecanismo inseguro de validação de código.
A exploração bem-sucedida pode fornecer ao atacante execução de código no contexto de segurança do backend do Langflow.
Dependendo da implantação, isso pode expor:
O impacto prático, portanto, depende fortemente dos privilégios e do acesso de rede disponíveis para o processo do Langflow.
As seguintes solicitações têm como objetivo a identificação não destrutiva e não contêm payload de execução de código.
GET / HTTP/1.1
Host: TARGET
Accept: */*
Connection: close
GET /docs HTTP/1.1
Host: TARGET
Accept: text/html,*/*
Connection: close
GET /api/v1/auto_login HTTP/1.1
Host: TARGET
Accept: application/json
Connection: close
Para testes defensivos, registre o código de status, os cabeçalhos e a estrutura da resposta, em vez de tentar usar qualquer material de credencial retornado.
Um padrão de telemetria defensiva útil é:
/api/v1/auto_login
followed shortly by
/api/v1/validate/code
Uma origem que faz essas solicitações sem o tráfego normal do frontend do Langflow ao redor é particularmente digna de investigação.
Não teste a vulnerabilidade enviando Python arbitrário para /api/v1/validate/code contra uma instância de produção.
Um fluxo de trabalho de validação seguro é:
1. Identify the Langflow version
2. Confirm whether it is <= 1.10.0
3. Review access logs for the affected endpoints
4. Check for unexpected SUPERUSER token issuance
5. Check process/application logs for suspicious Python execution
6. Upgrade to 1.10.1
7. Rotate potentially exposed credentials
8. Investigate the host if exploitation is suspected
Monitore:
POST /api/v1/validate/code
GET /api/v1/auto_login
POST /api/v1/auto_login
Comportamentos particularmente suspeitos incluem:
/api/v1/auto_login200 OK contendo um access_tokenauto_login imediatamente seguida por /api/v1/validate/codeAtualize o Langflow OSS para:
1.10.1 or later
A IBM recomenda especificamente atualizar para 1.10.1.
Se houver suspeita de exploração, a aplicação do patch por si só não deve ser considerada suficiente. Revise os logs e a telemetria do host e rotacione os segredos que possam ter sido acessíveis ao processo do Langflow.
A CISA adicionou o CVE-2026-9198 ao seu catálogo de Vulnerabilidades Conhecidas Exploradas em 4 de agosto de 2026.
Este repositório é destinado à pesquisa de segurança autorizada, análise de vulnerabilidades, engenharia de detecção e ambientes de laboratório controlados.
| Métrica | Valor |
|---|
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Nenhum |
| Interação do Usuário | Nenhuma |
| Confidencialidade | Alta |
| Integridade | Alta |
| Disponibilidade | Alta |
| Escopo | Inalterado |