Descripción de la Vulnerabilidad
Se ha identificado una vulnerabilidad crítica de ejecución remota de código en FlowiseAI Flowise versión 3.0.13. Esta herramienta open source de bajo código permite a desarrolladores construir aplicaciones LLM personalizadas y agentes de IA mediante una interfaz web con editor drag-and-drop.
La vulnerabilidad reside en el método run de la clase CSV_Agents, específicamente en el nodo CSV Agent que permite realizar consultas sobre archivos CSV. El problema surge por la falta de sandboxing adecuado al evaluar scripts Python generados por LLM en un entorno pyodide.
Mecanismo de Explotación
Cuando un usuario realiza una consulta contra un chatflow usando el nodo CSV Agent, el sistema crea un prompt del sistema que instruye al LLM para generar código Python usando pandas. Aunque existe validación mediante patrones prohibidos en la función validatePythonCodeForDataFrame(), esta puede ser eludida.
Por ejemplo, el patrón /\bimport\s+(?!pandas|numpy\b)/g puede ser bypaseado importando módulos maliciosos junto con pandas: import pandas as np, os as pandas seguido de pandas.system("comando"). Mediante técnicas de inyección de prompts, un atacante no autenticado puede convencer al LLM de responder con un script Python malicioso.
Impacto y Alcance
Esta vulnerabilidad permite a atacantes remotos ejecutar código arbitrario en el contexto del usuario que ejecuta el servidor, sin requerir autenticación. Los atacantes pueden explotar esto tanto mediante inyección de prompts como especificando un servidor controlado por el atacante en un chatflow. El impacto incluye compromiso completo del servidor Flowise y potencial escalada de privilegios en el sistema subyacente.
