Flowise Unauthenticated RCE via Environment Variable Bypass
Flowise v3.1.2 and earlier are vulnerable to unauthenticated remote code execution because the CVE-2025-8943 patch relies on an incomplete environment variable blocklist, allowing attackers to inject configuration variables that force arbitrary package installation.
CVE search metadata
CVE search record: CVE-2026-69263. EPSS: 0.27%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-70476. EPSS: 0.29%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-70471. EPSS: 0.28%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-67621. Severity: high. CVSS: 7.6. EPSS: 0.27%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-67620. Severity: high. CVSS: 7.7. EPSS: 0.43%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-71962. Severity: high. CVSS: 7.5. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-70636. Severity: high. CVSS: 7.5. EPSS: 0.37%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
CVE search record: CVE-2026-70478. EPSS: 0.38%. KEV: no. Product: Flowise (3.1.2), Flowise Components (3.1.2), Flowise, Flowise (<= 3.1.2), flowise-components, Flowise (<= 3.1.4), Flowise (2.2.4-3.1.4). Brief: Flowise Unauthenticated RCE via Environment Variable Bypass. Brief link: https://feed.craftedsignal.io/briefs/2026-08-flowise-rce/
What's new
Flowise (v3.1.2 and earlier) contains a critical security flaw involving an incomplete environment variable blocklist, identified as CVE-2026-69263. This vulnerability allows an attacker to bypass the intended security controls for the Model Context Protocol (MCP) server configuration, specifically those established in the previous CVE-2025-8943 patch. While the original patch successfully filtered dangerous CLI flags like -y for npx, it failed to account for npm configuration that can be passed via environment variables (e.g., npm_config_yes).
Because Flowise defaults to an unauthenticated state, a remote attacker can interact with the API to register a malicious MCP server. By including specific environment variables in the configuration, an attacker can influence the behavior of npx, node, or python3 to achieve remote code execution. This is a classic case of incomplete denylisting, where developers attempted to enumerate dangerous inputs rather than implementing a secure allowlist, leaving the environment vulnerable to various configuration injection vectors.
Attack Chain
- Attacker discovers an internet-facing, unauthenticated Flowise instance.
- Attacker interacts with the Flowise API to create or update an MCP server configuration.
- Attacker crafts a JSON payload containing the
mcpServersobject with a command likenpx. - Attacker inserts environment variables such as
npm_config_yes=trueinto theenvfield of the payload. - Flowise validation logic (
validateCommandFlags) is bypassed because the CLI flags are clean. - Flowise validation logic (
validateEnvironmentVariables) is bypassed because the blocklist only contains four hardcoded entries (PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, NODE_OPTIONS). - Flowise spawns the
npxprocess, which reads the injected environment variable and proceeds with automatic package installation. - Malicious code is executed under the privileges of the Flowise process, resulting in full system compromise.
Impact
Successful exploitation results in unauthenticated remote code execution on the server running Flowise. Given the tool's nature as an LLM integration platform, successful compromise often grants an attacker access to connected sensitive data, API keys for AI providers, and internal network resources. All versions up to and including 3.1.2 are confirmed to be vulnerable.
Recommendation
- Upgrade to a version of Flowise that implements an allowlist-based validation approach for environment variables rather than a denylist.
- Implement strict authentication on all Flowise API endpoints to prevent unauthenticated access to configuration interfaces.
- Restrict outbound network access for the server running Flowise to prevent the automatic installation of arbitrary npm/pip packages from the internet.
- Ensure that the service account running the Flowise process operates with the principle of least privilege, minimizing the damage from a successful code execution event.
Immediate actions
Upgrade Flowise to the latest patched release immediately
Mitigations
Enable authentication for the Flowise instance if currently unauthenticated
Unauthenticated API access
Detection coverage 6
Detect Suspicious Dynamic Import in Node.js via Pyodide
criticalDetects attempts to use dynamic import for child_process or fs modules, often associated with sandbox breakouts in Node.js environments.
Detect Unauthenticated OAuth2 Refresh Attempts
highDetects unauthorized attempts to access the Flowise OAuth2 credential refresh endpoint by monitoring for POST requests to the refresh path that may indicate exploitation of CVE-2026-70478.
Detect CVE-2026-70476 Exploitation - Unauthorized Billing Modification
highDetects unauthorized attempts to modify billing or subscription plans via the organization API endpoints.
Detect CVE-2026-70475 Exploitation - PUT Request to Flowise Executions
highDetects PUT requests to the executions endpoint which may indicate exploitation of CVE-2026-70475 by low-privileged users.
Detect Unauthenticated OAuth2 Credential Refresh Attempts
criticalDetects potential exploitation of the unauthenticated OAuth2 token refresh endpoint in Flowise.
Detect Excessive Data Exposure via Flowise API
highDetects potentially anomalous large response sizes from the Flowise upsert-history endpoint which may indicate data exfiltration.
Detection queries are available on the platform. Get full rules →
Indicators of compromise
2
ip
| Type | Value |
|---|---|
| ip | 192.0.0.192 |
| ip | 100.100.100.200 |