
Auto-verificação defensiva de alvo único para exposição CVE-2025-3248 do Langflow
Execute apenas em servidores que você possui ou está autorizado a testar.
Escopo: um resultado positivo significa apenas que esta verificação específica encontrou um desafio de autenticação e uma versão do Langflow igual ou superior ao limite corrigido para a CVE-2025-3248. Não é um veredito geral de segurança, reputação, configuração ou comprometimento.
Uma pequena autoverificação defensiva para a exposição do Langflow associada à CVE-2025-3248. Forneça ao EXPOSECHECK uma única URL base — seu próprio servidor ou localhost — e ele informa:
/api/v1/validate/code desafia uma requisição não autenticada;1.3.0; eIsto não é um exploit ou um scanner em massa. Aceita um alvo, não envia código executável e não realiza descoberta em toda a internet. A sonda do endpoint de validação submete apenas um objeto JSON vazio ({}).
A Sysdig Threat Research documentou o JADEPUFFER, que seus pesquisadores acreditam ser o primeiro ataque de ransomware executado do início ao fim por um agente de IA. O acesso inicial foi vinculado à conhecida e corrigida vulnerabilidade do Langflow CVE-2025-3248: instâncias expostas mais antigas permitiam acesso não autenticado a um endpoint de validação de código.
O Langflow é uma estrutura legítima de aplicações de IA de código aberto. O risco é uma implantação exposta e não corrigida — não o Langflow em si. O Langflow 1.3.0+ contém a correção relevante e exige autenticação no endpoint.
Requer Node.js 18+; não há pacotes a instalar.
node check.js http://localhost:7860
Você também pode imprimir saída legível por máquina:
node check.js http://localhost:7860 --json
Códigos de saída são úteis em scripts locais:
0 — CORRIGIDO PARA CVE-2025-32481 — EXPOSTO2 — PRECISA DE ATENÇÃO, entrada inválida ou verificação inconclusivaCORRIGIDO PARA CVE-2025-3248 requer tanto um desafio de autenticação 401/403 quanto uma versão detectada 1.3.0 ou mais recente. Não significa que o servidor está geralmente seguro. Um endpoint que chega à validação da requisição sem um desafio de autenticação é EXPOSTO. Respostas ausentes, redirecionadas, bloqueadas ou ambíguas são intencionalmente reportadas como PRECISA DE ATENÇÃO, não presumidas seguras.
Abra index.html diretamente ou sirva o diretório localmente:
python3 -m http.server 8080
Depois visite http://localhost:8080.
Os navegadores impõem regras de CORS e conteúdo misto. Um servidor de origem cruzada pode estar saudável, mas ainda assim bloquear a página de ler sua resposta. Isso produz um resultado inconclusivo; use a CLI para a verificação confiável.
Execute o conjunto de testes de regressão integrado com Node.js 18+:
node --test test.js
O conjunto trava o vocabulário público de resultados para que o estado corrigido no escopo da CVE não possa regredir silenciosamente para uma alegação geral de seguro ou está tudo bem.
As demonstrações são determinísticas e não contactam um servidor externo.
CLI:
node check.js --demo exposed
node check.js --demo patched
Navegador: use Demo: exposed e Demo: patched acima do painel de veredito. A página carrega a demo exposta por padrão, o que torna a gravação de tela confiável sem apontar a ferramenta para um alvo ao vivo.
A dica de rede apenas inspeciona a URL inserida. Não resolve DNS nem prova que um host é acessível pela internet.
O estilo verde é limitado ao predicado exibido apenas. Em particular, CORRIGIDO PARA CVE-2025-3248 não significa SEGURO.
Atualize o Langflow para 1.3.0+, coloque-o atrás de autenticação e retire-o da internet pública.
A defesa em profundidade ainda é importante: restrinja o tráfego de entrada, evite colocar ferramentas de desenvolvimento diretamente na internet pública, rotacione credenciais se houver suspeita de exposição e revise os logs do servidor. Se esta ferramenta reportar uma versão mais antiga atrás de autenticação, ela retorna PRECISA DE ATENÇÃO porque o software ainda deve ser corrigido.
MIT. Veja LICENSE.
| Verificação | Sinal defensivo observado | Sinal de atenção |
|---|
| Acessibilidade | Qualquer resposta HTTP confirma que o host está ativo | Tempo limite ou falha de conexão é inconclusivo |
| Autenticação do endpoint | 401 ou 403 para uma requisição vazia não autenticada | 2xx, 400 ou 422 significa que nenhum desafio de autenticação ocorreu antes da requisição ser aceita/validada |
| Versão | Langflow 1.3.0+ | <1.3.0 é vulnerável; versões desconhecidas precisam de verificação manual |
| Dica de rede | URL local/privada | IP/domínio público é informativo e deve levar a uma revisão de exposição |