CVE-2026-91931: Flowise: RCE via npx in Custom MCP node
HIGHPoC AVAILABLECISA: ATTENDFlowise before 3.1.4 lets any authenticated user run arbitrary code on the server by supplying attacker-controlled npm package names in the Custom MCP node's mcpServerConfig, which Flowise passes to npx. Exploitation likelihood is currently modest: EPSS is 0.00675 (top 49%), the CVE is not in CISA KEV, and there is no public exploit or Nuclei template, but CISA SSVC rates it ATTEND. The scope-changed CVSS of 8.5 reflects that a low-privileged account is enough to compromise the host and anything it can reach, including LLM API keys, vector database credentials and connected data sources. Flowise has a history of attractive-target RCE bugs, and the trivial technique (point npx at a malicious package) means exploit weaponization could follow quickly. Upgrade to Flowise 3.1.4 or later, restrict who can create or edit Custom MCP nodes, and review your instances for unexpected npx or npm child processes.
What is the risk?
Overall risk is HIGH for any internet-reachable or multi-user Flowise deployment. Attack complexity is rated high and authentication is required (low privilege), which limits mass exploitation, and EPSS is low at 0.00675 with no known exploitation or public PoC. However, the impact is full compromise of confidentiality, integrity and availability with changed scope, since the Flowise server typically holds credentials for LLM providers, databases and SaaS tools. Self-registration, shared accounts, leaked API keys or weak access control sharply raise real-world exposure. Sources report no affected-product list, so inventory must be done manually.
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 step1) Upgrade Flowise to 3.1.4 or later (see GHSA-vcwp-f9rq-3887). 2) Until patched, restrict access to the Flowise UI/API to trusted networks or behind SSO/VPN, disable open registration, and limit which users can create or edit chatflows with Custom MCP nodes. 3) Run Flowise in a locked-down container with a non-root user, read-only filesystem where possible, minimal secrets and egress filtering that blocks access to arbitrary npm registries. 4) Rotate LLM, database and integration credentials stored in Flowise if compromise is suspected. 5) Detection: alert on npx/npm child processes spawned by the Flowise process, unexpected package downloads from the npm registry, and mcpServerConfig values in flow definitions that reference unfamiliar packages.
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-91931?
Flowise before 3.1.4 lets any authenticated user run arbitrary code on the server by supplying attacker-controlled npm package names in the Custom MCP node's mcpServerConfig, which Flowise passes to npx. Exploitation likelihood is currently modest: EPSS is 0.00675 (top 49%), the CVE is not in CISA KEV, and there is no public exploit or Nuclei template, but CISA SSVC rates it ATTEND. The scope-changed CVSS of 8.5 reflects that a low-privileged account is enough to compromise the host and anything it can reach, including LLM API keys, vector database credentials and connected data sources. Flowise has a history of attractive-target RCE bugs, and the trivial technique (point npx at a malicious package) means exploit weaponization could follow quickly. Upgrade to Flowise 3.1.4 or later, restrict who can create or edit Custom MCP nodes, and review your instances for unexpected npx or npm child processes.
Is CVE-2026-91931 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-91931, increasing the risk of exploitation.
How to fix CVE-2026-91931?
1) Upgrade Flowise to 3.1.4 or later (see GHSA-vcwp-f9rq-3887). 2) Until patched, restrict access to the Flowise UI/API to trusted networks or behind SSO/VPN, disable open registration, and limit which users can create or edit chatflows with Custom MCP nodes. 3) Run Flowise in a locked-down container with a non-root user, read-only filesystem where possible, minimal secrets and egress filtering that blocks access to arbitrary npm registries. 4) Rotate LLM, database and integration credentials stored in Flowise if compromise is suspected. 5) Detection: alert on npx/npm child processes spawned by the Flowise process, unexpected package downloads from the npm registry, and mcpServerConfig values in flow definitions that reference unfamiliar packages.
What systems are affected by CVE-2026-91931?
This vulnerability affects the following AI/ML architecture patterns: Agent frameworks, LLM orchestration platforms, MCP-based tool integrations, RAG pipelines.
What is the CVSS score for CVE-2026-91931?
CVE-2026-91931 has a CVSS v3.1 base score of 8.5 (HIGH). The EPSS exploitation probability is 0.68%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.005AI Agent ToolAML.T0049Exploit Public-Facing ApplicationAML.T0050Command and Scripting InterpreterAML.T0104Publish Poisoned AI Agent ToolCompliance Controls Affected
What are the technical details?
Original Advisory
Flowise before 3.1.4 contains a remote code execution vulnerability in the Custom MCP node that allows authenticated attackers to execute arbitrary code by supplying npx package names in the mcpServerConfig parameter. Attackers can invoke npx with attacker-controlled npm packages to execute code on the Flowise server.
Exploitation Scenario
An attacker obtains a low-privileged Flowise account, through open signup, a phished user or a leaked API key. They create or modify a chatflow with a Custom MCP node and set mcpServerConfig to run npx with a malicious npm package they published. When the flow is saved or executed, Flowise invokes npx, which downloads and runs the package, giving the attacker code execution on the server. From there they read environment variables and stored credentials for OpenAI, vector databases and cloud services, establish a reverse shell, and pivot into internal systems or tamper with other agents' flows.
Weaknesses (CWE)
CWE-78Improper Neutralization of Special Elements used in an OS CommandPrimaryCWE-78Improper Neutralization of Special Elements used in an OS CommandCWE-78 — Improper Neutralization of Special Elements used in an OS Command: The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command before it is sent to a downstream component.
- [Architecture and Design] If at all possible, use library calls rather than external processes to recreate the desired functionality.
- [Architecture and Design, Operation] Run the code in a "jail" or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which files can be accessed in a particular directory or which commands can be executed by the software. OS-level examples include the Unix chroot jail, AppArmor, and SELinux. In general, managed code may provide some protection. For example, java.io.FilePermission in the Java SecurityManager allows the software to specify restrictions on file operations. This may not be a feasible solution, and it only limits the impact to the operating system; the rest of the application may still be subject to compromise. Be careful to avoid CWE-243 and other weaknesses related to jails.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2025-7133810.0Flowise: unauthenticated file write enables RCE
Same package: flowiseCVE-2025-5952810.0Flowise: Unauthenticated RCE via MCP config injection
Same package: flowiseCVE-2025-619139.9Flowise: path traversal in file tools leads to RCE
Same package: flowiseCVE-2026-409339.9Flowise: RCE via MCP stdio command injection
Same package: flowiseCVE-2026-464429.9Flowise: sandbox escape enables authenticated RCE
Same package: flowise