Flowise is a drag-and-drop user interface for building customized large language model (LLM) flows. Prior to 3.1.3, Flowise GET /api/v1/upsert-history returns the entire server-wide upsert history instead of being scoped to the requesting user, tenant, or workspace. The response can exceed 100MB and includes sensitive configuration data, including Vector Store settings such as Qdrant Server URL and collection name. The observed behavior indicates missing or insufficient authorization checks, workspace/project/tenant isolation, and pagination or limits, exposing integration parameters and infrastructure details that may enable further targeted attacks. This issue is fixed in version 3.1.3.
CVE-2026-70472 is an improper authorization vulnerability in FlowiseAI Flowise versions prior to 3.1.3. The issue allows an attacker to use a client-controlled credential parameter to access credentials belonging to other workspaces without proper authorization checks. This can lead to unauthorized use of OpenAI API keys, modification or deletion of victim vector stores and files, and potential billing impact on the victim's OpenAI account. The vulnerability violates multi-tenant boundaries and is fixed in version 3.1.3.
Flowise is a drag-and-drop user interface for building customized large language model (LLM) flows. Prior to 3.1.3, Flowise injects $vars into the code execution sandbox without requiring variables:view, bypassing the permission-protected Variables API. Variables for the active workspace are fetched at packages/components/src/utils.ts and runtime variables are resolved from server environment variables, while the official variables route enforces variables:view. A user or API key that is denied variables:view can call /api/v1/node-custom-function and receive $vars pre-populated with all variables for the workspace, including Variable.name to Variable.value static variables and Variable.name to process.env[Variable.name] runtime variables. This can expose secrets such as database passwords, JWT secrets, SMTP passwords, and cloud keys, depending on the workspace Variables configuration. This issue is fixed in version 3.1.3.
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, Flowise validatePythonCodeForDataFrame in packages/components/src/pythonCodeValidator.ts can be bypassed with Unicode homoglyph identifiers, allowing arbitrary Python execution inside Pyodide and full OS command execution on the Flowise host via Pyodide js module interop. The validator gates pyodide.runPythonAsync in packages/components/nodes/agents/CSVAgent/CSVAgent.ts and packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts with an ASCII word-boundary blacklist. JavaScript regex word boundaries are ASCII-only, while Python 3 NFKC-normalizes identifiers at parse time, so homoglyph forms such as __cl𝐚ss__, __subcl𝐚sses__, __b𝐚se__, and __b𝐮iltins__ bypass the blacklist and are parsed as their ASCII equivalents. This issue is fixed in version 3.1.3.
Prior to 3.1.3, Flowise CSVAgent interpolates an attacker-controlled segment of the csvFile data URI directly into a Python source-code template that is then executed by Pyodide. Because Pyodide is loaded with the default js bridge to globalThis, which on Node.js exposes eval and dynamic import, the attacker can break out of the Python string literal, hand a JavaScript string to js.eval, dynamically import Node built-in modules such as fs and child_process, and execute arbitrary file I/O or OS commands as the Flowise process. The two validator paths around this code, validatePythonCodeForDataFrame and validateCustomReadCSVFunction, are never applied to the bootstrap template. A workspace user with chatflows:create or agentflows/chatflows update permission can plant a CSV Agent node with a crafted csvFile; once the chatflow is exposed via POST /api/v1/prediction/:id, any unauthenticated request triggers host remote code execution. This issue is fixed in version 3.1.3.
Flowise versions prior to 3.1.3 have an incomplete mitigation for a security issue where certain environment variables were not blocked, allowing unintended automatic package installation via npx when launching a Custom MCP server. This vulnerability is identified as CVE-2026-69263 and is fixed in version 3.1.3.
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, `DELETE /api/v1/chatflows/:id` authorized requests with checkAnyPermission('chatflows:delete,agentflows:delete'), so possession of either permission was sufficient to reach the delete path. The delete logic then resolved the target record only by id and workspaceId and did not validate the target resource type, allowing a caller with only agentflows:delete to delete a CHATFLOW and a caller with only chatflows:delete to delete an AGENTFLOW in the same workspace. This issue is fixed in version 3.1.3.
CVE-2026-69259 is a critical code injection vulnerability in FlowiseAI's Flowise prior to version 3.1.3. The SQLite Record Manager node improperly handles user-controlled configuration, allowing an authenticated attacker to overwrite the SQLite database path. Exploiting this, an attacker running the published Docker image as root could write malicious SQLite databases to sensitive system paths such as /etc/chromium/exploit.conf. By controlling database content, the attacker could inject shell syntax that executes when Puppeteer launches Chromium and sources configuration files. This vulnerability is fixed in Flowise version 3.1.3.
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, the unauthenticated POST /api/v1/prediction/:id endpoint accepted an overrideConfig object and unconditionally spread it into internal flowConfig and flowData objects in packages/server/src/utils/buildChatflow.ts and packages/server/src/utils/index.ts without checking apiOverrideStatus. This allowed unauthenticated attackers to inject arbitrary properties into the flow execution context of any public chatflow, overwrite values such as chatId, sessionId, and chatHistory, and control values resolved through $flow.* template variables consumed by flow nodes. This issue is fixed in version 3.1.3.
Flowise versions prior to 3.1.3 contain a Server-Side Request Forgery (SSRF) vulnerability due to improper normalization of IPv4-mapped IPv6 addresses in its HTTP security module. This allows attackers controlling DNS resolution to bypass IP deny lists and make requests to localhost, internal services, or cloud metadata endpoints. The issue is fixed in version 3.1.3.
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, the CSVAgent node allowed users to provide Python code that is executed through pyodide; although a denylist blocked dangerous Python constructs, pandas.read_pickle() could deserialize a pickled payload and achieve code execution without matching the denied words. The affected file is flowise-components/nodes/agents/CSVAgent/CSVAgent.ts, where user-supplied customReadCSVFunc is evaluated as pd.${customReadCSVFunc}. An authenticated user who can create or modify a chatflow can add a CSV Agent, place a malicious read_pickle payload in the Additional Parameters, save the chatflow, and trigger /api/v1/prediction/<UUID> to execute commands. This issue is fixed in version 3.1.3.
CVE-2026-69255 is a critical code injection vulnerability in Flowise versions prior to 3.1.3. It arises from improper handling of attacker-controlled CSV data in the CSVAgent component, where unvalidated input is interpolated directly into executable Python code. This flaw allows an authenticated attacker to execute arbitrary operating system commands with root privileges in the Flowise container. The issue is fixed in version 3.1.3.
CVE-2026-69254 is a critical code injection vulnerability in FlowiseAI's Flowise prior to version 3.1.3. It allows an authenticated attacker with limited privileges to execute arbitrary system commands as root by exploiting improper control over JavaScript code execution options. The flaw arises from the executeJavaScriptCode() function merging caller-provided NodeVM options over default security settings, enabling escalation to full system command execution. This issue is fixed in Flowise version 3.1.3.
Flowise is a drag-and-drop user interface for building customized large language model (LLM) flows. Prior to version 3.1.3, several custom-tool components — AgentAsTool, ChatflowTool, and ExecuteFlow — ran code in the in-process vm2 sandbox. To build that code, they inserted a user-controlled baseURL value straight into the JavaScript source, for example const url = "${baseURL}/..."; . The only check on baseURL was isValidURL , but a valid-looking URL can still contain characters that break out of a code string. An authenticated user could craft a baseURL that passed this check, closed the surrounding string, and injected their own JavaScript into the sandboxed script (code injection, CWE-94). The vm2 sandbox runs in the same Node.js process as Flowise and exposes risky dependencies. As a result, the injected code could escape the sandbox and run arbitrary code on the Flowise server as the Flowise process user. Exploitation only requires an authenticated session. The issue is fixed in version 3.1.3, which passes the URL to the sandbox as data instead of inserting it into code and adds stricter URL validation.
FlowiseAI Flowise versions prior to 3.1.3 contain a missing authorization vulnerability in the /api/v1/files API endpoint. Low-privileged authenticated API keys with unrelated permissions could list and delete files across different workspaces within the same organization due to insufficient permission checks. This issue is resolved in version 3.1.3.
Flowise versions prior to 3.1.3 contain a code injection vulnerability in record manager and agent memory nodes. Authenticated users can set arbitrary TypeORM DataSource options via the additionalConfig input, enabling them to load local JavaScript files and execute arbitrary code on the server. This vulnerability is fixed in version 3.1.3.
Flowise versions prior to 3.1.3 contain an authorization bypass vulnerability in the OAuth2 token refresh endpoint. This endpoint is unauthenticated by design and allows an attacker to trigger server-side HTTP requests to attacker-controlled URLs without SSRF protections. Sensitive OAuth2 credentials are sent in these requests, and the full remote response is reflected back to the caller. The issue is fixed in version 3.1.3.
A vulnerability was determined in FlowiseAI Flowise up to 3.1.2. The impacted element is an unknown function of the file packages/components/nodes/documentloaders/S3/S3.ts of the component S3 Document Loader. Executing a manipulation can lead to path traversal. It is possible to launch the attack remotely. The vendor was contacted early about this disclosure but did not respond in any way.
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to version 3.1.2, evaluator create and update mass-assignment allows cross-workspace evaluator takeover. This issue has been patched in version 3.1.2.