
Reproducción de CVE: cve-2026-0770-langflow_rce_reproduction
CVSS 9.8 (Crítico) | ZDI-CAN-27325 | CWE-829: Inclusión de Funcionalidad desde una Esfera de Control no Confiable
CVE-2026-0770 es una vulnerabilidad crítica de ejecución remota de código no autenticada en Langflow, un framework de aplicaciones de bajo código para construir aplicaciones impulsadas por LLM. El fallo reside en el endpoint /api/v1/validate, donde el parámetro exec_globals se pasa de manera insegura a la función exec() de Python, lo que permite a atacantes no autenticados ejecutar código arbitrario con los privilegios del proceso de Langflow (normalmente root).
Descubierta a través de la Zero Day Initiative (ZDI-CAN-27325).
El endpoint de validación de Langflow en /api/v1/validate acepta una carga útil JSON que contiene un campo exec_globals. Este diccionario está pensado para uso interno, para preinicializar variables globales durante la validación de componentes personalizados. Sin embargo, el endpoint no sanea ni restringe el contenido de exec_globals, y los valores se pasan directamente a la función integrada exec() de Python:
exec(user_code, exec_globals)
Un atacante puede inyectar código Python arbitrario proporcionando un diccionario exec_globals manipulado que sobrescriba funciones integradas o inyecte invocables maliciosos. Cuando Langflow evalúa internamente el código de usuario con estos globales, el código inyectado se ejecuta.
La vulnerabilidad se clasifica como CWE-829 porque la aplicación incluye funcionalidad (a través de exec_globals) desde una fuente no confiable (la solicitud de red) sin una validación adecuada, lo que conduce a la ejecución de código arbitrario.
Todas las versiones de Langflow anteriores al parche que implementa la sanitización adecuada de exec_globals en el endpoint de validación están afectadas. Las versiones afectadas específicas incluyen:
/api/v1/validate acepta exec_globals sin validación/api/v1/validate con una carga útil exec_globals maliciosaUsa el script exploit.py incluido:
python exploit.py --target 192.168.1.100 --port 7860 --command "id > /tmp/pwned"
exec_globals.Descargo de responsabilidad: Esta información se proporciona únicamente con fines educativos y para pruebas de seguridad autorizadas. El uso no autorizado contra sistemas que no posees o para los que no tienes permiso explícito de prueba es ilegal.