Authenticated Code Injection RCE in Flowise CSV Agent (pre-3.1.3)
CVSS 4.0
9.4critical
EPSS
<1%p54
Published
()
Modified
AI analysis
Flowise, an open-source drag-and-drop builder for LLM workflows, contains a code injection flaw in its CSV Agent node in versions prior to 3.1.3. The node evaluates the user-supplied Additional Parameters field customReadCSVFunc as pd.${customReadCSVFunc} inside pyodide, and although a denylist blocks dangerous Python constructs, an attacker can call pandas.read_pickle() to deserialize a crafted pickled payload and execute arbitrary Python commands on the host. Exploitation requires an authenticated account able to create or modify a chatflow: the attacker adds a CSV Agent, embeds the malicious read_pickle payload, saves the flow, and triggers it via /api/v1/prediction/, yielding full command execution with high impact to confidentiality, integrity, and availability (CVSS 4.0: 9.4). Any self-hosted Flowise deployment on a version before 3.1.3 that allows untrusted or low-privilege users to build or edit chatflows is affected. The flaw is fixed in 3.1.3; technical details and a public advisory exist, but no in-the-wild exploitation is known and EPSS is low (0.4%, 33rd percentile).
What to do: Upgrade Flowise to version 3.1.3 or later immediately. Restrict chatflow creation and editing to trusted, vetted users only, since the flaw requires authenticated flow-builder access. Audit existing chatflows for suspicious customReadCSVFunc / read_pickle content in CSV Agent Additional Parameters and review server logs for unexpected command execution following calls to /api/v1/prediction/.
Affected
flowiseai flowise
< 3.1.3
Estimated exposure
moderate≈1,000–10,000 internet-exposed self-hosted instances; likely tens of thousands of deployments overall (estimate) — Flowise is a popular open-source self-hosted project (tens of thousands of npm installs and Docker pulls), and public internet scans typically show low thousands of Flowise instances exposed, so I estimate a moderate footprint of roughly…
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Description
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/ to execute commands. This issue is fixed in version 3.1.3.
ZDI discloses CVE-2026-69256, a CVSS 8.8 code injection in Flowise CSV_Agent customReadCSV allowing authenticated remote attackers to execute arbitrary code.
ZDI advisory ZDI-26-545 describes a code injection vulnerability in Flowise's CSV_Agent customReadCSV functionality, tracked as CVE-2026-69256 with a CVSS score of 8.8. It allows remote attackers to execute arbitrary code on affected Flowise installations. Authentication is required to exploit the vulnerability.