CVE-2026-69254 in Flowise
Summary
by MITRE • 08/04/2026
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.
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Analysis
by VulDB Data Team • 08/04/2026
The vulnerability described represents a critical privilege escalation flaw in Flowise versions prior to 3.1.3 that stems from improper handling of JavaScript execution contexts within the application's custom function framework. This security weakness allows authenticated attackers to bypass sandboxing mechanisms and execute arbitrary system commands with elevated privileges, effectively compromising the entire server environment.
The technical root cause lies in the executeJavaScriptCode() function implementation within packages/components/src/utils.ts which improperly merges user-provided nodeVMOptions with default NodeVM security configurations. This merging process fails to adequately sanitize or restrict the execution environment, creating a path for malicious input to override critical security controls. The vulnerability specifically targets the nodeVMOptions.require.builtin configuration parameter, which when set to allow all built-in modules, enables access to dangerous system functions that should remain restricted.
Attackers exploiting this vulnerability can leverage the authenticated access point in packages/server/src/routes/node-custom-functions/index.ts to craft custom functions that import flowise-components/dist/src/utils.js and subsequently call executeJavaScriptCode() with malicious nodeVMOptions. The crafted configuration specifically sets nodeVMOptions.require.builtin to permit all built-in modules, which then allows the attacker to require the child_process module - a fundamental Node.js capability for executing system commands. This chain of execution ultimately enables arbitrary command injection as the root user on the Flowise server.
The operational impact of this vulnerability extends beyond simple privilege escalation to encompass complete system compromise, as the attacker gains root-level access to execute any command on the host machine. This represents a severe security risk in environments where Flowise servers handle sensitive data or operate in production environments, as it allows for data exfiltration, system manipulation, and potential lateral movement within network infrastructures. The vulnerability affects organizations using Flowise versions 3.1.2 and earlier, making them susceptible to remote code execution attacks.
Security mitigations for this vulnerability require immediate upgrade to Flowise version 3.1.3 or later, which implements proper sanitization of nodeVMOptions and stricter enforcement of sandboxing controls. Organizations should also implement network segmentation and access controls to limit the impact of potential compromise, while monitoring for unauthorized access attempts to the custom function endpoints. This vulnerability aligns with CWE-264, representing a permissions and access control weakness in the Node.js virtual machine execution context, and maps to ATT&CK technique T1059.007 for command and scripting interpreter execution through JavaScript environments.
The fix implemented in version 3.1.3 addresses the core issue by properly validating and restricting the nodeVMOptions parameter, ensuring that built-in module access remains limited to only those necessary for legitimate application functionality. This represents a critical security improvement that prevents the bypass of Node.js sandboxing mechanisms and maintains proper isolation between user-provided code execution and system-level operations. Organizations should conduct thorough security assessments to verify proper implementation of these fixes and ensure no other similar vulnerabilities exist in their Flowise deployments.