CVE-2026-69253
PoC moderateAuthenticated Code Injection and vm2 Sandbox Escape RCE in Flowise < 3.1.3
Flowise, an open-source drag-and-drop UI for building LLM flows, contains a code injection flaw (CWE-95) in versions prior to 3.1.3 affecting the custom-tool components AgentAsTool, ChatflowTool, and ExecuteFlow. These components interpolated a user-controlled baseURL value directly into JavaScript source executed inside an in-process vm2 sandbox, with only an isValidURL check as validation, so an authenticated user could craft a URL that closed the string literal and injected arbitrary JavaScript. Because the vm2 sandbox runs in the same Node.js process as Flowise and exposes risky dependencies, injected code could escape the sandbox and execute arbitrary code on the Flowise server as the Flowise process user. Only an authenticated session is required, and CVSS 4.0 is rated 9 (critical). The flaw is fixed in version 3.1.3, which passes the URL as data rather than code and adds stricter URL validation; exploitation has not been observed in the wild, though a public advisory documents the issue and EPSS stands at 0.3%.
What to do: Upgrade Flowise to version 3.1.3 or later, where the baseURL is passed to the sandbox as data and URL validation is stricter. Restrict access to Flowise instances with authentication and network-level controls (VPN/reverse proxy), and avoid exposing the UI directly to the internet. Review logs for unusual baseURL values on custom tools (AgentAsTool, ChatflowTool, ExecuteFlow) and investigate for host-level compromise, since successful exploitation yields arbitrary code execution as the Flowise process user.
| FlowiseAI Flowise | prior to 3.1.3 (fixed in 3.1.3) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
- Vendors
- flowiseai
- Products
- flowise
- Weakness
- CWE-95
- Vector
- CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.