Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Single unauthenticated HTTP request (AV:N/AC:L/PR:N/UI:N) yields root command execution in-container with total confidentiality, integrity and availability impact; scope unchanged as no other system is compromised.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
8DescriptionGitHub Advisory
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.0, Flowise is vulnerable to a critical unauthenticated remote command execution (RCE) vulnerability. It can be exploited via a parameter override bypass using the FILE-STORAGE:: keyword combined with a NODE_OPTIONS environment variable injection. This allows for the execution of arbitrary system commands with root privileges within the containerized Flowise instance, requiring only a single HTTP request and no authentication or knowledge of the instance. This vulnerability is fixed in 3.1.0.
AnalysisAI
Remote code execution in Flowise before 3.1.0 lets an unauthenticated attacker run arbitrary OS commands as root inside the container with a single HTTP request. The flaw chains a parameter-override validation bypass (the FILE-STORAGE:: keyword check) with NODE_OPTIONS environment-variable injection through the Custom MCP node. Publicly available exploit code exists per the SSVC 'poc' rating, though EPSS is only 0.17%; no active exploitation has been confirmed.
Technical ContextAI
Flowise is a Node.js/TypeScript low-code platform for building LLM orchestration flows. The root cause is CWE-20 (Improper Input Validation) in the replaceInputsWithConfig function in packages/server/src/utils/index.ts: a guard meant to permit file-type overrides tests overrideConfig[config].includes('FILE-STORAGE::') using .includes() rather than .startsWith(), so the keyword can appear anywhere in a string (even inside a /* comment */) to satisfy the check. The guard performs no parameter-type validation, so it applies to any parameter name including mcpServerConfig, and when it passes it skips isParameterEnabled() entirely - allowing override of parameters administrators never exposed. The injected mcpServerConfig reaches the Custom MCP node (packages/components/nodes/tools/MCP/core.ts), whose dangerous-env blocklist covers only PATH, LD_LIBRARY_PATH and DYLD_LIBRARY_PATH but not NODE_OPTIONS, so an attacker sets NODE_OPTIONS=--experimental-loader to execute attacker-controlled JavaScript before the main process starts. Affected CPE is cpe:2.3:a:flowiseai:flowise (npm packages flowise and flowise-components <= 3.0.13).
RemediationAI
Vendor-released patch: upgrade Flowise (and flowise-components) to 3.1.0 or later, which fixes both the FILE-STORAGE:: bypass and the NODE_OPTIONS injection; see GHSA-cvrr-qhgw-2mm6 (https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-cvrr-qhgw-2mm6). If you cannot upgrade immediately, remove the instance from public exposure and place it behind authenticated access or a VPN, since the attack needs only a single unauthenticated HTTP request; disable the API override feature so external overrideConfig values are not applied (this breaks any workflow relying on runtime parameter overrides); and avoid or restrict the Custom MCP node, which is the sink for the NODE_OPTIONS injection (this disables MCP tool functionality). As container hardening that limits blast radius rather than closing the flaw, run the container as a non-root user with a least-privilege/read-only filesystem. These are compensating controls only - patching to 3.1.0 is the definitive fix.
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Flowise versions before 3.0.1 allow unauthenticated access to the Custom MCPs feature, which is designed to execute OS c
FlowiseAI Flowise version 2.2.6 contains an arbitrary file upload vulnerability in the /api/v1/attachments endpoint. Una
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Flowise is a drag & drop user interface to build a customized large language model flow. Rated critical severity (CVSS 9
Unrestricted file upload in Flowise LLM workflow builder before 3.0.13 via /api/v1/attachments endpoint allows unauthent
Missing authentication on NVD data endpoint in Flowise before 3.0.13 allows unauthenticated access to internal vulnerabi
Remote code execution in Flowise before 3.1.3 arises because its Pyodide Python-code validator (validatePythonCodeForDat
Arbitrary file read and write in FlowiseAI Flowise (versions 2.2.8 through 3.0.5) lets remote unauthenticated attackers
Authenticated remote code execution in FlowiseAI Flowise prior to 3.1.2 allows any user with a valid session or API key
Privilege escalation in Flowise versions prior to 3.0.13 allows authenticated users to bypass API authorization by spoof
Flowise versions up to 3.0.13 is affected by authorization bypass through user-controlled key (CVSS 8.8).
Same weakness CWE-20 – Improper Input Validation
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-25285
GHSA-cvrr-qhgw-2mm6