CVE-2026-58057: Flowise: NODE_OPTIONS denylist bypass allows RCE
MEDIUM PoC AVAILABLE CISA: TRACK*Flowise's Custom MCP node validates stdio environment variables against a denylist using case-sensitive string matching, so on Windows deployments an authenticated user can submit the variable as 'node_options' instead of 'NODE_OPTIONS' and slip past the filter entirely, since Windows treats environment variable names as case-insensitive. Once bypassed, the attacker injects a NODE_OPTIONS=--require flag that loads an arbitrary module when Flowise spawns the MCP stdio process, yielding code execution in the Flowise server context. This is a low-complexity logic flaw in a security control rather than a novel exploitation technique, and CVSS 5.0 (AC:H, PR:L) reflects that it requires an authenticated account able to configure Custom MCP nodes plus a Windows-hosted deployment — a public PoC already exists and a VulnCheck advisory has been published, but EPSS remains negligible (0.0024) and there is no CISA KEV listing or scanner template, so mass exploitation is unlikely though targeted abuse by insiders or compromised low-privileged accounts is realistic. Patch to Flowise 3.1.3 or later immediately; if you cannot patch, avoid hosting Flowise on Windows, restrict who can create/edit Custom MCP nodes to trusted admins, and monitor for Node.js child processes launched with unexpected --require flags or NODE_OPTIONS values originating from Flowise's MCP tooling.
What is the risk?
Medium risk overall: the flaw enables full remote code execution in the Flowise server process, but the attack requires an authenticated, low-privileged account with permission to configure Custom MCP nodes (PR:L) and a Windows host, which narrows the exposure compared to unauthenticated network-wide flaws. High attack complexity (AC:H) reflects the platform-specific case-insensitivity quirk and the need to craft a working --require payload. A public PoC and vendor advisory exist, increasing the chance of opportunistic abuse against multi-tenant or loosely-governed Flowise deployments where non-admin users can define MCP integrations, but EPSS scoring (0.0024) and absence from CISA KEV indicate no evidence of active exploitation in the wild yet.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Flowise | npm | — | No patch |
Do you use Flowise? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to Flowise 3.1.3 or later, which fixes the case-sensitive denylist comparison for Custom MCP stdio environment variables. If immediate patching isn't possible: restrict the ability to create or edit Custom MCP nodes to trusted administrators only (least privilege), avoid running Flowise on Windows hosts where feasible, and place Flowise behind network controls limiting who can reach the workflow builder UI. For detection, monitor Flowise server process creation for Node.js child processes launched with NODE_OPTIONS or --require flags, alert on any environment variable names in MCP node configs that are case-variants of denylisted entries (NODE_OPTIONS, NODE_DEBUG, etc.), and audit recent Custom MCP node configuration changes for suspicious environment variable entries.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-58057?
Flowise's Custom MCP node validates stdio environment variables against a denylist using case-sensitive string matching, so on Windows deployments an authenticated user can submit the variable as 'node_options' instead of 'NODE_OPTIONS' and slip past the filter entirely, since Windows treats environment variable names as case-insensitive. Once bypassed, the attacker injects a NODE_OPTIONS=--require flag that loads an arbitrary module when Flowise spawns the MCP stdio process, yielding code execution in the Flowise server context. This is a low-complexity logic flaw in a security control rather than a novel exploitation technique, and CVSS 5.0 (AC:H, PR:L) reflects that it requires an authenticated account able to configure Custom MCP nodes plus a Windows-hosted deployment — a public PoC already exists and a VulnCheck advisory has been published, but EPSS remains negligible (0.0024) and there is no CISA KEV listing or scanner template, so mass exploitation is unlikely though targeted abuse by insiders or compromised low-privileged accounts is realistic. Patch to Flowise 3.1.3 or later immediately; if you cannot patch, avoid hosting Flowise on Windows, restrict who can create/edit Custom MCP nodes to trusted admins, and monitor for Node.js child processes launched with unexpected --require flags or NODE_OPTIONS values originating from Flowise's MCP tooling.
Is CVE-2026-58057 actively exploited?
A working exploit for CVE-2026-58057 is published in Exploit-DB, increasing the risk of exploitation.
How to fix CVE-2026-58057?
Upgrade to Flowise 3.1.3 or later, which fixes the case-sensitive denylist comparison for Custom MCP stdio environment variables. If immediate patching isn't possible: restrict the ability to create or edit Custom MCP nodes to trusted administrators only (least privilege), avoid running Flowise on Windows hosts where feasible, and place Flowise behind network controls limiting who can reach the workflow builder UI. For detection, monitor Flowise server process creation for Node.js child processes launched with NODE_OPTIONS or --require flags, alert on any environment variable names in MCP node configs that are case-variants of denylisted entries (NODE_OPTIONS, NODE_DEBUG, etc.), and audit recent Custom MCP node configuration changes for suspicious environment variable entries.
What systems are affected by CVE-2026-58057?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, MCP tool integrations, low-code AI workflow platforms.
What is the CVSS score for CVE-2026-58057?
CVE-2026-58057 has a CVSS v3.1 base score of 5.0 (MEDIUM). The EPSS exploitation probability is 1.27%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049 Exploit Public-Facing Application AML.T0050 Command and Scripting Interpreter AML.T0081 Modify AI Agent Configuration Compliance Controls Affected
What are the technical details?
Original Advisory
Flowise before 3.1.3 validates Custom MCP stdio environment variables against a denylist using a case-sensitive comparison, so on Windows, where environment names are case-insensitive, supplying 'node_options' bypasses the NODE_OPTIONS denylist entry. An authenticated user who can configure a Custom MCP node can thereby inject NODE_OPTIONS --require and execute arbitrary code in the Flowise server context.
Exploitation Scenario
An attacker who has obtained or been granted a low-privileged Flowise account (e.g., a collaborator on a shared instance) creates or edits a Custom MCP node and adds an stdio environment variable named 'node_options' (lowercase) set to '--require /path/to/malicious.js'. Flowise's denylist check only blocks the exact string 'NODE_OPTIONS', so the entry passes validation. When the Windows-hosted Flowise server spawns the MCP stdio subprocess, Windows resolves 'node_options' as equivalent to 'NODE_OPTIONS' at the OS level, causing Node.js to load the attacker's module via --require and execute arbitrary code with the privileges of the Flowise server process — giving the attacker a foothold to exfiltrate API keys, pivot to connected systems, or tamper with other agent workflows.
Weaknesses (CWE)
CWE-178 — Improper Handling of Case Sensitivity: The product does not properly account for differences in case sensitivity when accessing or determining the properties of a resource, leading to inconsistent results.
- [Architecture and Design] Avoid making decisions based on names of resources (e.g. files) if those resources can have alternate names.
- [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylis
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L References
Timeline
Related Vulnerabilities
CVE-2025-71338 10.0 Flowise: unauthenticated file write enables RCE
Same package: flowise CVE-2025-59528 10.0 Flowise: Unauthenticated RCE via MCP config injection
Same package: flowise CVE-2025-61913 9.9 Flowise: path traversal in file tools leads to RCE
Same package: flowise CVE-2026-40933 9.9 Flowise: RCE via MCP stdio command injection
Same package: flowise CVE-2026-46442 9.9 Flowise: sandbox escape enables authenticated RCE
Same package: flowise