EXPOSURES › CVE-2026-69264
CVE-2026-69264
CRITICALCVE-2026-69264 allows unauthenticated remote code execution in Flowise via CSVAgent template injection before version 3.1.3.
An attacker can plant a malicious CSV file in a Flowise CSVAgent node, which gets interpolated into a Python template executed by Pyodide. The default js bridge in Pyodide exposes eval and dynamic import, allowing the attacker to break out of the Python string literal, execute arbitrary Node.js commands, and perform file I/O or OS command execution as the Flowise process. DIB organizations using Flowise must upgrade to version 3.1.3 immediately to prevent unauthenticated remote code execution and potential supply-chain compromise.
Shame score — The vulnerability allows unauthenticated remote code execution through a straightforward template injection flaw that bypasses validator paths, indicating a severe avoidable security oversight.
▸ RECOMMENDED ACTION Remote code execution — patch the affected products on priority.
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.