Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain workspace flow-edit permission
-
DeliveryPlant CSV Agent node with crafted csvFile data URI
-
ExploitSend request to POST /api/v1/prediction/:id
-
ExecutionBreak out of Python string into js.eval
-
PersistImport Node child_process/fs via Pyodide bridge
-
ImpactExecute arbitrary OS commands as Flowise process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two things: (1) an attacker with a workspace account holding chatflows:create or any agentflows/chatflows update permission to plant a CSV Agent node containing a crafted csvFile data URI whose base64 segment escapes the Python string literal; and (2) that chatflow being reachable via the whitelisted POST /api/v1/prediction/:id prediction endpoint, whose invocation is unauthenticated. The vulnerable feature is specifically the CSVAgent node's Pyodide bootstrap template, and the environment must be Node.js-based Flowise <= 3.1.2 where Pyodide's default js bridge exposes globalThis (eval and dynamic import). Limiting factors: an attacker needs low-level authenticated write access to flows to plant the node (not fully anonymous end-to-end), so single-operator or tightly-permissioned instances are far less exposed than multi-tenant deployments with many flow editors; there is no user-interaction requirement once the node is planted. |
| Impact | This is a genuine high-priority issue rather than an inflated high-CVSS score. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N with high vulnerable- and subsequent-system C/I/A, score 9.4) aligns with the described mechanics: network reachable, low attacker complexity, and full host compromise. The PR:L in the vector reflects the planting step, which requires a low-privileged workspace user with chatflows/agentflows create-or-update permission; however, the described trigger - any unauthenticated request to the whitelisted POST /api/v1/prediction/:id endpoint - means the effective barrier once a node is planted is very low, which the subsequent-system impact (SC/SI/SA:H) captures. No EPSS score, KEV listing, POC, or SSVC decision data was provided, so exploitation probability cannot be quantified from signals; there is no public exploit identified at time of analysis. The main real-world limiter is the initial-access requirement of an authenticated workspace user in a multi-tenant deployment, so risk is highest where untrusted or numerous users hold flow-editing permissions, or where a single-tenant instance's builder is exposed. Note the two signals to reconcile: CVSS PR:L (needs some privilege to plant) versus the description's emphasis that the eventual prediction call is unauthenticated - both are true because they describe different stages of the attack chain. |
| Exploit ScenarioDerived | A low-privileged member of a shared Flowise workspace creates or edits a chatflow, adds a CSV Agent node, and sets its csvFile to a data URI whose base64 segment is crafted to break out of the Python string and call js.eval to import Node's child_process. They (or any anonymous third party) then send a normal request to the public POST /api/v1/prediction/:id for that chatflow, and Flowise executes attacker-chosen OS commands on the host as the Flowise process. No public exploit code is identified at time of analysis, but the attack is low-complexity per the CVSS vector. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 04, 2026
Remote code execution in FlowiseAI Flowise before 3.1.3 lets an attacker execute arbitrary OS commands as the Flowise process by abusing the CSVAgent node, which interpolates an attacker-controlled base64 segment of the csvFile data URI directly into a Python template run by Pyodide. Because Pyodide's default js bridge exposes globalThis (including eval and dynamic import on Node.js), the injected code can break out of the Python string, call js.eval, import fs and child_process, and run host commands; the surrounding validators are never applied to this bootstrap template. A low-privileged workspace user plants the malicious node, after which any unauthenticated request to the public POST /api/v1/prediction/:id endpoint triggers the RCE. No public exploit is identified at time of analysis (no KEV, no POC signal in the provided data), but the fix is confirmed in version 3.1.3.
RemediationAI
Upgrade to Flowise 3.1.3, which contains the fix (Vendor-released patch: 3.1.3; see https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3, PR https://github.com/FlowiseAI/Flowise/pull/6499 and commit f4e2794f6a576b94578f2fdafbf49c2fb304626c, advisory GHSA-4j8x-x6v7-w9rq); upgrade both flowise and flowise-components together. If you cannot patch immediately, restrict who holds chatflows:create and agentflows/chatflows update permissions to fully trusted operators only, since planting the malicious node requires that privilege - the trade-off is reduced self-service flow editing for workspace users. Additionally, avoid exposing or disable the public POST /api/v1/prediction/:id endpoint for untrusted callers (e.g. place it behind authentication or network restrictions), accepting that this breaks unauthenticated/embedded prediction consumers. Where feasible, avoid using the deprecated CSV Agent node entirely and audit existing chatflows for CSV Agent nodes with unexpected csvFile contents. Note the PR also removes related deprecated Python/Pyodide agent nodes (e.g. AirtableAgent), so review flows that depend on them before upgrading.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Flowise is a low-code/no-code visual builder for LLM orchestration flows (chatflows and agentflows) built on Node.js with the LangChain ecosystem. The affected component is the CSVAgent node in packages/components/nodes/agents/CSVAgent/CSVAgent.ts, which uses Pyodide (a WebAssembly build of CPython) to run pandas against uploaded CSV data. The vulnerability is CWE-94 (Improper Control of Generation of Code, i.e. code injection): the run() method splits the csvFile data URI on commas, pops the base64 segment, and interpolates it verbatim into a Python source string (base64_string = "${base64String}") that is then passed to pyodide.runPythonAsync. Because Pyodide is initialized with its default js bridge to globalThis and Node.js exposes eval and dynamic import() there, an attacker who breaks out of the Python string literal can pivot from the Python sandbox into the Node host via js.eval and import Node built-in modules such as fs and child_process. The existing guardrails validatePythonCodeForDataFrame and validateCustomReadCSVFunction only inspect the customReadCSV field and unrelated python code, never the interpolated base64String, so the sink is completely unguarded. Affected packages per the advisory are npm/flowise and npm/flowise-components at versions <= 3.1.2.
Know when Flowise gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Network-reachable, low-complexity code injection; PR:L reflects the workspace write access needed to plant the node, and S:C captures the Python-to-Node host escape yielding full host RCE.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Articles & Coverage 1
Zero Day Initiative Advisories
Executive ViewAI
FlowiseAI Flowise versions prior to 3.1.3 contain a critical remote code execution vulnerability in the CSVAgent node that allows unauthenticated attackers to execute arbitrary operating system commands through the public prediction API endpoint. Any organization running Flowise versions before 3.1.3 with internet-exposed deployments faces immediate risk of complete system compromise.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Flowise versions before 3.0.1 allow unauthenticated access to the Custom MCPs feature, which is designed to execute OS c
FlowiseAI Flowise version 2.2.6 contains an arbitrary file upload vulnerability in the /api/v1/attachments endpoint. Una
Arbitrary file read and write in Flowise versions prior to 3.0.8 allows an authenticated attacker with access to the flo
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Flowise is a drag & drop user interface to build a customized large language model flow. Rated critical severity (CVSS 9
Authenticated users can upload arbitrary files to Flowise 3.0.7 due to missing validation, enabling persistent storage o
Unrestricted file upload in Flowise LLM workflow builder before 3.0.13 via /api/v1/attachments endpoint allows unauthent
Missing authentication on NVD data endpoint in Flowise before 3.0.13 allows unauthenticated access to internal vulnerabi
Authenticated remote code execution in FlowiseAI Flowise (v3.0.1 up to but not including 3.0.8, and later versions when
Remote code execution in Flowise before 3.1.3 arises because its Pyodide Python-code validator (validatePythonCodeForDat
Remote command execution in Flowise <= 3.1.2 lets an authenticated user break out of the vm2/@flowiseai/nodevm JavaScrip
EUVD-2026-52801
GHSA-4j8x-x6v7-w9rq
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB