Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain valid Flowise session or API key
-
DeliverySend POST /api/v1/node-custom-function with malicious javascriptFunction
-
ExploitBypass missing route-level authorization
-
InstallTrigger NodeVM constructor-traversal escape
-
C2Invoke child_process on host
-
ExecuteExecute commands as Flowise service user
-
ImpactExfiltrate credentials and pivot
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) network reachability to the Flowise HTTP API, (2) any valid authentication artifact - a logged-in session or API key at any privilege level, since the /api/v1/node-custom-function route has no per-permission middleware behind the global /api/v1 auth gate, and (3) the target instance running without E2B_APIKEY set in its environment, which the vendor describes as the common deployment case and causes Flowise to fall back to the in-process @flowiseai/nodevm sandbox. No user interaction, no admin role, and no non-default toggle are needed beyond the absence of E2B_APIKEY. Exploitation is LIMITED on instances where E2B_APIKEY is configured (code runs in the external E2B sandbox instead) and on instances where the Flowise API is not exposed to untrusted networks or where API key/account issuance is tightly controlled. |
| Impact | The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H yields 9.4 Critical, reflecting network reach, low complexity, low (not none) privileges, no user interaction, and high impact on both vulnerable and subsequent systems. PR:L is the only meaningful brake - an attacker needs any valid session or API key, which in many Flowise deployments includes self-registered users, shared API keys, or compromised low-privilege accounts, making this effectively low-friction once a foothold exists. EPSS data was not provided and the CVE is not on the CISA KEV list, so no public exploit identified at time of analysis for in-the-wild use; however, the GHSA advisory publicly describes the call chain and the NodeVM escape pattern is widely known, so weaponization should be assumed imminent. The vendor explicitly frames NodeVM as a declared security boundary, so this is a genuine RCE in the common (non-E2B) deployment configuration rather than a low-real-risk high-CVSS issue. |
| Exploit ScenarioDerived | An attacker obtains any valid Flowise session cookie or API key - for example via a low-privilege account on a multi-tenant instance, a leaked key in a repository, or a phished collaborator - and sends a single POST to /api/v1/node-custom-function with a javascriptFunction body containing a known NodeVM constructor-traversal payload that pivots to the host process object and invokes child_process.exec. Within one request the attacker gains command execution as the Flowise service user, enabling credential theft from the .env file (LLM API keys, database creds), lateral movement, and persistence. The GHSA advisory publicly documents the full vulnerable call chain, lowering the bar for exploit development. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 08, 2026
Authenticated remote code execution in FlowiseAI Flowise prior to 3.1.2 allows any user with a valid session or API key to submit arbitrary JavaScript via POST /api/v1/node-custom-function, which executes inside a NodeVM sandbox that can be escaped to reach the host process and spawn child processes. CVSS 4.0 scores this 9.4 Critical, and publicly available exploit details exist via the GHSA advisory, though no public exploit identified at time of analysis in CISA KEV. The flaw stems from missing route-level authorization combined with a sandbox that Flowise itself documents as a security boundary but which fails to contain malicious payloads.
RemediationAI
Vendor-released patch: 3.1.2. Upgrade to flowise 3.1.2 or later via https://github.com/FlowiseAI/Flowise/releases/tag/flowise%403.1.2, which adds route-level authorization to /api/v1/node-custom-function and ships alongside several other security fixes in the same release. If immediate upgrade is not possible, configure E2B_APIKEY to force code execution through the external E2B sandbox instead of the in-process NodeVM fallback (trade-off: requires an E2B account and outbound network egress, and does not address the missing authorization itself); additionally restrict network access to the Flowise API to trusted operators only and rotate any API keys held by lower-trust users, since PR:L means any valid credential reaches the sink. As a stronger compensating control, place a reverse proxy in front of Flowise that blocks POST /api/v1/node-custom-function except from administrator source IPs (trade-off: breaks legitimate custom-function authoring for non-admin users). Consult the advisory at https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-9rvc-vf7m-pgm2 for full details.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package 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-based low-code platform for building LLM workflows. The vulnerability sits at the intersection of two defects mapped to CWE-94 (Improper Control of Generation of Code): the /api/v1/node-custom-function route in packages/server/src/routes/node-custom-functions/index.ts is registered without the checkAnyPermission middleware used on peer routes like chatflows, so global /api/v1 authentication is the only gate. User-supplied javascriptFunction is forwarded through executeCustomNodeFunction into createCodeExecutionSandbox, which only routes to the external E2B sandbox when E2B_APIKEY is set; otherwise it falls back to @flowiseai/nodevm with eval:false and wasm:false. NodeVM is a userland JavaScript isolation library, not a kernel-level sandbox, and well-known prototype/constructor traversal techniques allow escaping to the host process object and invoking require('child_process'). Affected CPE is cpe:2.3:a:flowiseai:flowise:*:*:*:*:*:*:*:*.
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:H/SI:H/SA:H
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to version 3.1.2, POST /api/v1/node-custom-function lacks route-level authorization, allowing any authenticated user or API key to submit arbitrary JavaScript to the Custom JS Function node. When E2B_APIKEY is not configured - the common deployment case - Flowise executes this code inside a NodeVM sandbox. This sandbox can be escaped, allowing an attacker to reach the host process object and execute system commands via child_process. The result is authenticated remote code execution on the Flowise server host. This issue has been patched in version 3.1.2.
Executive ViewAI
FlowiseAI Flowise (versions prior to 3.1.2) permits any authenticated user to execute arbitrary code on the server, enabling complete system compromise. Organizations deploying this application face immediate risk of data breach, malware installation, and lateral movement to interconnected systems.
Apply vendor patch.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-35110
GHSA-9rvc-vf7m-pgm2
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB