CVE-2026-69254

Flowise: RCE via NodeVM Sandbox Escape in executeJavaScriptCode() nodeVMOptions Override

Published Aug 4, 2026 CVSS 4.0 · 9.4 Critical EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

This vulnerability allows an authenticated attacker to escape the NodeVM sandbox by overriding the default security settings in executeJavaScriptCode(). The attacker can set nodeVMOptions.require.builtin to enable all built‑in modules, then call child_process to run arbitrary system commands as the Flowise server user, effectively hijacking the host system. The weakness corresponds to CWE-94, a code injection flaw that compromises confidentiality, integrity, and availability of the server.

Affected Systems

The affected product is Flowise by FlowiseAI. Versions of Flowise released prior to 3.1.3 are vulnerable. All deployments that use executeJavaScriptCode() for custom function execution and have authenticated users capable of accessing the node‑custom‑functions endpoint can be impacted.

Risk and Exploitability

The CVSS score of 9.4 indicates a critical severity. While no EPSS value is provided, the lack of a KEV listing suggests exploitation may not yet be publicly observed, yet the vulnerability remains highly actionable. An attacker requires valid credentials to reach the node‑custom‑functions route, but once authenticated can execute arbitrary system commands with root privileges on the server. The attack vector is authenticated, local to the application, and hinges on permissive nodeVMOptions configuration. Given the severity, immediate mitigation is recommended.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Flowise to version 3.1.3 or later, where the NodeVM options override has been disabled.
  • If an upgrade is not immediately possible, restrict access to the /node-custom-functions endpoint to only trusted administrators and enforce strict authentication and role checks.
  • Configure the NodeVM sandbox to disallow built‑in module access by resetting require.builtin or removing nodeVMOptions from executeJavaScriptCode() calls to prevent arbitrary code execution.

Generated by OpenCVE AI on August 4, 2026 at 19:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-3769-jgqc-cxm7 Flowise: RCE via NodeVM Sandbox Escape in executeJavaScriptCode() nodeVMOptions Override
History
Type Values Removed Values Added
CPEs cpe:2.3:a:flowiseai:flowise:*:*:*:*:*:*:*:*
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Flowiseai
Flowiseai flowise
Vendors & Products Flowiseai
Flowiseai flowise
Type Values Removed Values Added
Description 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.
Title Flowise: RCE via NodeVM Sandbox Escape in executeJavaScriptCode() nodeVMOptions Override
Weaknesses CWE-94
References
Metrics cvssV4_0

{'score': 9.4, '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'}

Weaknesses
  • CWE-94

    Improper Control of Generation of Code ('Code Injection')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Aug 4, 2026, 5:45 PM
Reserved
Aug 3, 2026, 7:54 PM
Status
Analyzed
Published
Aug 4, 2026, 4:16 PM
Modified
Oct 23, 2026, 11:10 PM