CVE-2026-69254
PoC moderateAuthenticated Sandbox Escape to Root RCE in Flowise < 3.1.3
Flowise versions before 3.1.3 contain a code-injection flaw (CWE-94) in executeJavaScriptCode() in packages/components/src/utils.ts, which merged caller-supplied nodeVMOptions over the default NodeVM sandbox restrictions. An authenticated attacker who can reach the node-custom-functions API route (packages/server/src/routes/node-custom-functions/index.ts) can create a custom function that imports flowise-components/dist/src/utils.js and re-invokes executeJavaScriptCode() with nodeVMOptions.require.builtin set to allow all built-in Node modules, then require child_process to execute arbitrary system commands on the Flowise server, typically as root inside the standard Docker deployment. The issue affects self-hosted Flowise instances and is rated critical at CVSS 4.0 9.4, though it requires attacker authentication (PR:L). It is fixed in Flowise 3.1.3, and the attack path is documented publicly in a GitHub security advisory. EPSS is currently 0.4% (30th percentile) and the flaw is not in the CISA KEV, so exploitation in the wild is plausible but not confirmed.
What to do: Upgrade to Flowise 3.1.3 or later immediately. Until patched, restrict access to the node-custom-functions API route and the Flowise UI to trusted, authenticated users only, and avoid exposing Flowise directly to the internet. Run Flowise as a non-root user with minimal container privileges, and review server logs and custom functions for suspicious calls to executeJavaScriptCode with custom nodeVMOptions or use of child_process.
| flowiseai flowise | < 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 & drop user interface to build a customized large language model flow. Prior to 3.1.3, executeJavaScriptCode() accepted caller-provided nodeVMOptions and merged them over the default NodeVM security settings in packages/components/src/utils.ts. An authenticated attacker reaching packages/server/src/routes/node-custom-functions/index.ts could run a custom function that imported flowise-components/dist/src/utils.js, called executeJavaScriptCode() again with nodeVMOptions.require.builtin set to allow all built-in modules, and then required child_process to execute arbitrary system commands as root on the Flowise server. This issue is fixed in version 3.1.3.
- Vendors
- flowiseai
- Products
- flowise
- Weakness
- CWE-94
- Vector
- 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/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.