Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess Flowise HTTP API (no credentials on default installs)
-
DeliverySubmit Custom MCP stdio config with malicious npx package name
-
ExploitSet npm_config_yes=true in MCP env vars (passes denylist unchecked)
-
ExecutionTrigger flow execution to launch MCP server
-
Persistnpx auto-installs attacker-controlled npm package
-
ImpactExecute arbitrary code as Flowise server process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation completeness
|
| Exploitation Conditions | The Custom MCP node must be accessible, and the attacker must be able to submit a Custom MCP stdio server configuration with attacker-controlled environment variables. On default Flowise deployments (authentication is disabled out of the box), this requires only network access to the Flowise HTTP API - no credentials or prior session are needed. The stdio transport path was reachable by default in affected versions whenever a command field was provided in the MCP config; no special deployment flag was required. The CUSTOM_MCP_SECURITY_CHECK=true setting does not block this bypass - the attack works specifically because the security check's environment variable validation uses an incomplete denylist. Exploitation is prevented if: Flowise authentication is enabled and the attacker lacks valid credentials; the deployment explicitly sets CUSTOM_MCP_PROTOCOL=sse (disabling stdio transport); or network access to the Flowise API is restricted to trusted users. The vulnerability does not require any specific OS platform or database backend. |
| Impact | The CVSS 4.0 base score of 8.7 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) reflects a network-accessible, low-complexity vulnerability with high impact across confidentiality, integrity, and availability. The PR:L metric warrants scrutiny: the GHSA advisory explicitly labels this 'Unauthenticated RCE' because Flowise ships with authentication disabled by default, meaning 'low privileges' in practice equates to any network-accessible API call on a default deployment. EPSS data was not provided in the input, so exploitation probability cannot be quantified. KEV status is not confirmed - no CISA KEV listing was present in the source data. No public exploit code has been identified at time of analysis, but the bypass technique is straightforward and completely described in the public GHSA advisory, making CISA KEV listing and rapid exploitation plausible. The structural severity is compounded by the patch bypass nature: organizations that applied the CVE-2025-8943 fix and considered themselves protected remain fully vulnerable on 3.1.1 and 3.1.2. The fix is architecturally sound - switching from denylist to allowlist eliminates the entire class of bypass - but urgency to upgrade is high for any internet-exposed Flowise instance. |
| Exploit ScenarioDerived | An attacker targets an internet-exposed Flowise 3.1.2 instance running with default settings (no authentication). Using the Flowise API, the attacker creates a Custom MCP flow node configured with npx as the command, a malicious npm package name as the argument, and npm_config_yes=true set in the environment variables map. When the flow is triggered, Flowise's validateEnvironmentVariables passes npm_config_yes through unchecked (it is not in the four-item denylist), npx silently installs the attacker-specified package without prompting, and the package executes arbitrary code as the Flowise server process - granting full control over the host. The bypass technique is entirely derivable from the published GHSA advisory without additional research. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 04, 2026
Flowise's patch for CVE-2025-8943 is fully bypassed in versions up to and including 3.1.2, allowing unauthenticated remote code execution on default deployments via the npm_config_yes environment variable. The prior mitigation blocked the -y and --yes flags on npx and denied four specific environment variable names by exact string match, but npm natively reads its configuration from any npm_config_* prefixed variable, making npm_config_yes=true semantically equivalent to --yes. Any attacker who can submit a Custom MCP stdio server configuration - which requires no authentication on default Flowise deployments - can force npx to auto-install and execute an arbitrary package as the Flowise server process. No public exploit code has been identified at time of analysis, though the bypass technique is fully documented in the public GHSA advisory GHSA-xc48-889x-5qmw, making independent weaponization trivial.
RemediationAI
Upgrade to Flowise 3.1.3 or later, available at https://github.com/FlowiseAI/Flowise/releases/tag/flowise@3.1.3 via npm or Docker. The fix replaces the environment variable denylist with a strict allowlist: only variable names explicitly enumerated in the CUSTOM_MCP_ALLOWED_ENV_VARS environment variable (comma-separated, e.g., BRAVE_API_KEY,GITHUB_TOKEN) are permitted through to Custom MCP stdio servers - all others are rejected. The stdio protocol path is now opt-in only via CUSTOM_MCP_PROTOCOL=stdio; deployments that do not set this variable default to SSE, eliminating the stdio attack surface. For deployments that cannot immediately patch: set CUSTOM_MCP_PROTOCOL=sse to disable stdio transport entirely, which blocks this exploit at the cost of losing stdio-based MCP server support. Additionally, enable Flowise authentication (disabled by default) to require credentials before any MCP configuration can be submitted, reducing exposure to authenticated users only. Do not rely on CUSTOM_MCP_SECURITY_CHECK=true as a compensating control - this vulnerability demonstrates that the underlying security check is bypassable by design.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Flowise is a Node.js application (cpe:2.3:a:flowiseai:flowise:*:*:*:*:*:*:*:*) that provides a drag-and-drop interface for composing LLM workflows, including integration with Model Context Protocol (MCP) servers over both SSE and stdio transports. The vulnerable code resides in packages/components/nodes/tools/MCP/core.ts, where the validateEnvironmentVariables function implements a hardcoded four-item denylist - ['PATH', 'LD_LIBRARY_PATH', 'DYLD_LIBRARY_PATH', 'NODE_OPTIONS'] - checked by exact string match. The root cause class is CWE-184 (Incomplete List of Disallowed Inputs): npm's documented behavior allows any environment variable of the form npm_config_<option> to override the corresponding CLI flag, so npm_config_yes=true is treated identically to --yes by the npm runtime. This means npx will auto-install the named package without confirmation, bypassing the flag-level check in validateCommandFlags entirely. The stdio transport path in CustomMCP.ts previously defaulted to stdio whenever a command was provided, giving attackers a reachable execution primitive. The fix in 3.1.3 replaces the denylist with an allowlist controlled by CUSTOM_MCP_ALLOWED_ENV_VARS and changes the default transport to SSE, requiring explicit opt-in to stdio via CUSTOM_MCP_PROTOCOL=stdio.
Know when Flowise gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-accessible and low complexity; PR:L reflects API access needed even on no-auth defaults; S:C because arbitrary package execution escapes Flowise's application scope to the host OS.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, the mitigation for CVE-2025-8943 blocked -y and --yes flags on npx, but packages/components/nodes/tools/MCP/core.ts denied only PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, and NODE_OPTIONS by exact environment-variable name. Because npm reads configuration from npm_config_* variables, setting npm_config_yes=true reproduced --yes behavior without using a blocked flag, causing npx to auto-install and execute the named package when a Custom MCP server launched. This issue is fixed in version 3.1.3.
Latest POC
1 public PoC link from github
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
Flowise versions through 3.1.2 contain an unauthenticated remote code execution vulnerability (CVE-2026-69263, CVSS 8.7) that circumvents the vendor's prior security patch, enabling attackers to execute arbitrary code with full server privileges on default deployments. This critically exposes organizations to complete infrastructure compromise through a configuration mechanism that requires no authentication. Immediate interim mitigations are essential because no patch is currently available.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict network access to MCP configuration endpoints; disable Custom MCP stdio server if unused; enforce strict authentication and allowlisting for MCP configurations; implement process-level environment variable filtering to block npm_config_* prefixes; isolate Flowise in restricted containers with minimal elevated privileges; monitor system and process execution logs for unexpected npx or npm invocations.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Arbitrary file read and write in Flowise versions prior to 3.0.8 allows an authenticated attacker with access to the flo
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
Authenticated users can upload arbitrary files to Flowise 3.0.7 due to missing validation, enabling persistent storage o
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
Authenticated remote code execution in FlowiseAI Flowise (v3.0.1 up to but not including 3.0.8, and later versions when
Remote code execution in Flowise before 3.1.3 arises because its Pyodide Python-code validator (validatePythonCodeForDat
Remote code execution in FlowiseAI Flowise before 3.1.3 lets an attacker execute arbitrary OS commands as the Flowise pr
EUVD-2026-52795
GHSA-xc48-889x-5qmw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB