← voltar
CVE-2025-34291criticalsob ataqueCWE-346

Langflow <= 1.6.9 CORS Misconfiguration to Token Hijack & RCE

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.4epss 84%
da publicação à arma164 dias
Publicada no NVD5 de dez.
1ª PoC+164d
CISA KEV+167d
probabilidade de exploração
84%top 1% das CVEs
exploração observada
simCISA + VulnCheck
2 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2026-06-04

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Resumo

Falha de encadeamento em Langflow, plataforma open-source de agentes e workflows de IA com mais de 140 mil estrelas no GitHub: uma configuração de CORS que reflete qualquer origem com credenciais habilitadas, somada a um cookie de refresh token configurado como SameSite=None, permite que uma página maliciosa capture tokens de sessão de uma vítima logada. Como o Langflow expõe endpoints autenticados que executam código Python arbitrário por design, o roubo de token vira RCE completo no servidor. O CVSS 4.0 de 9.4 reflete corretamente a severidade final, mas o vetor real depende de engenharia social (a vítima precisa clicar em um link) e de uma configuração padrão vulnerável que passou a ser corrigida a partir da versão 1.7.

Detalhamento técnico

A cadeia tem três componentes, cada um documentado pela Obsidian Security. Primeiro, o middleware CORS do Langflow (baseado em FastAPI) responde com allow_origins='*' e allow_credentials=True — combinação que navegadores modernos normalmente bloqueiam, mas que frameworks web mal configurados às vezes permitem via reflexão dinâmica da origem recebida. Segundo, o cookie que guarda o refresh token é emitido com SameSite=None, o atributo que existe justamente para permitir envio cross-site — sem ele, o navegador não enviaria o cookie em uma requisição originada de outro domínio. Terceiro, o endpoint de refresh de token não tem proteção CSRF própria (token anti-CSRF, verificação de origem server-side, etc.), então aceita qualquer requisição que chegue com o cookie válido, independentemente de onde ela partiu. Isso é classificado como CWE-346 (Origin Validation Error).

Como é explorada

A exploração exige que a vítima tenha uma sessão ativa no Langflow (cookie de refresh válido no navegador) e seja induzida a visitar uma página controlada pelo atacante enquanto essa sessão está viva — é o UI:P do vetor CVSS. A página maliciosa executa uma requisição cross-origin com credentials:'include' contra o endpoint de refresh do Langflow; como o CORS reflete a origem do atacante e aceita credenciais, o navegador da vítima entrega o cookie, e a resposta — legível pela página maliciosa por causa do CORS permissivo — contém um par access_token/refresh_token novo e válido. A partir daí o atacante já não precisa mais do navegador da vítima nem de acesso à mesma rede: ele usa os tokens diretamente para chamar endpoints autenticados da API do Langflow, incluindo o endpoint de validação/execução de código que já foi alvo de outra CVE anterior (CVE-2025-3248) e que, por design, executa Python arbitrário no processo do servidor.

A CrowdSec confirmou exploração ativa em ambiente real a partir de 23 de janeiro de 2026, descrevendo operação provavelmente orquestrada em escala profissional. Um detalhe relevante para quem monitora: como o vetor depende do navegador da vítima fazendo a requisição, os IPs observados em logs de acesso são os das vítimas (em faixas residenciais), não da infraestrutura do atacante — o que dificulta medir o alcance real da campanha e dificulta bloqueio por IP.

Versões

Afetadas
Langflow em versões até 1.6.9 (conforme o título oficial da CVE). O catálogo KEV da CISA e a CrowdSec citam pontos de correção em versões posteriores (1.7 e 1.9.3), sugerindo que a mitigação foi aplicada em etapas — recomenda-se não assumir que apenas 'sair da 1.6.9' resolve sem confirmar a configuração de CORS e cookie na versão instalada.
Corrigidas em
A partir da versão 1.7, a configuração padrão de CORS do Langflow deixa de ser vulnerável ao vetor primário (CORS + credenciais), segundo a CrowdSec. O catálogo KEV da CISA referencia especificamente o release v1.9.3 (github.com/langflow-ai/langflow/releases/tag/v1.9.3) como a correção associada à CVE. Não há informação apurada sobre backport para ramos anteriores ao 1.7.

Como se proteger

A correção definitiva é atualizar o Langflow. A CrowdSec indica que a partir da versão 1.7 a configuração padrão de CORS já não é vulnerável a este vetor. O catálogo KEV da CISA referencia a release v1.9.3 como o ponto de correção associado à CVE. Há uma inconsistência de granularidade entre fontes sobre exatamente onde a cadeia foi fechada por completo — recomenda-se, além de atualizar, verificar manualmente a configuração de CORS e do cookie após o upgrade, em vez de confiar apenas no número de versão.

Se a atualização imediata não for possível, o paliativo real é de configuração, não de rede: definir a variável de ambiente LANGFLOW_CORS_ALLOW_CREDENTIALS=False desativa o envio de credenciais em requisições cross-origin, quebrando o elo central da cadeia. Onde isso não for viável (por exemplo, se alguma integração legítima depender de credenciais cross-origin), restringir LANGFLOW_CORS_ORIGINS a uma lista explícita de hosts confiáveis reduz a superfície, embora não elimine o risco caso um desses hosts confiáveis seja comprometido. Um WAF genérico não mitiga isso de forma confiável, porque o ataque ocorre no navegador da vítima contra um endpoint legítimo com credenciais legítimas — não há payload malformado para uma assinatura de WAF detectar.

Como detectar

O sinal mais direto seria requisições cross-origin ao endpoint de refresh token do Langflow com cabeçalho Origin apontando para domínios fora da lista de origens confiáveis do ambiente, seguidas em curto intervalo por chamadas ao endpoint de validação/execução de código usando o token recém-emitido — esse padrão (refresh a partir de origem estranha + uso imediato do token em endpoint de execução) é o indicador de comprometimento mais confiável disponível. Vale notar a limitação apontada pela CrowdSec: como a requisição maliciosa parte do navegador da vítima, os endereços IP registrados nos logs do servidor são das vítimas, tipicamente em faixas residenciais, e não da infraestrutura do atacante — bloqueio ou triagem por IP de origem não identifica o atacante e pode até penalizar usuários legítimos enganados.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
Langflow versions up to and including 1.6.9 contain a chained vulnerability that enables account takeover and remote code execution. An overly permissive CORS configuration (allow_origins='*' with allow_credentials=True) combined with a refresh token cookie configured as SameSite=None allows a malicious webpage to perform cross-origin requests that include credentials and successfully call the refresh endpoint. An attacker-controlled origin can therefore obtain fresh access_token / refresh_token pairs for a victim session. Obtained tokens permit access to authenticated endpoints — including built-in code-execution functionality — allowing the attacker to execute arbitrary code and achieve full system compromise.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Produtos afetados
Langflow · Langflow
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.