CVE-2026-91931: Flowise: RCE via npx in Custom MCP node

HIGHPoC AVAILABLECISA: ATTEND
Published September 15, 2026
CISO Take

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.

Sources:NVDEPSSGitHub Advisoryvulncheck.comATLAS

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?

Initial Access
Attacker authenticates to Flowise with a low-privileged account obtained via signup, phishing or a leaked credential.
AML.T0012
Exploitation
Attacker configures a Custom MCP node with an npx command pointing to a malicious npm package in mcpServerConfig.
AML.T0010.005
Execution
Flowise runs npx, which downloads and executes the attacker's package as the service account.
AML.T0050
Impact
Attacker steals stored LLM and database credentials, tampers with flows and pivots to internal systems.
AML.T0055

What systems are affected?

PackageEcosystemVulnerable RangePatched
Flowisenpm—No patch

Do you use Flowise? You're affected.

How severe is it?

CVSS 3.1
8.5 / 10
EPSS
0.7%
chance of exploitation in 30 days
Higher than 52% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
○CISA SSVC: Public PoC
○Public PoC indexed (trickest/cve)
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACHigh
PRLow
UINone
SChanged
CHigh
IHigh
AHigh

What should I do?

1 step
  1. 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 does CISA's SSVC say?

DecisionAttend
Exploitationpoc
AutomatableNo
Technical Impacttotal

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:

EU AI Act
Art. 15-Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.6-AI system operation and monitoring
NIST AI RMF
MANAGE 2.3-Responses to unknown risks and incidents
OWASP LLM Top 10
LLM03-Supply ChainLLM06-Excessive Agency

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

Agent frameworksLLM orchestration platformsMCP-based tool integrationsRAG pipelines

MITRE ATLAS Techniques

AML.T0010.005AI Agent Tool
AML.T0049Exploit Public-Facing Application
AML.T0050Command and Scripting Interpreter
AML.T0104Publish Poisoned AI Agent Tool

Compliance Controls Affected

EU AI Act: Art. 15
ISO 42001: A.6.2.6
NIST AI RMF: MANAGE 2.3
OWASP LLM Top 10: LLM03, LLM06

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-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:H

Timeline

Published
September 15, 2026
Last Modified
September 23, 2026
First Seen
September 15, 2026

Related Vulnerabilities