Severity by source
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L
Authenticated user needs Custom Function access (PR:L) and a reachable internal target (AC:H); primary impact is confidentiality (C:H) with limited integrity via internal writes, no availability loss.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
6DescriptionGitHub Advisory
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.0, a Server-Side Request Forgery (SSRF) protection bypass vulnerability exists in the Custom Function feature. While the application implements SSRF protection via HTTP_DENY_LIST for axios and node-fetch libraries, the built-in Node.js http, https, and net modules are allowed in the NodeVM sandbox without equivalent protection. This allows authenticated users to bypass SSRF controls and access internal network resources (e.g., cloud provider metadata services) This vulnerability is fixed in 3.1.0.
AnalysisAI
Server-Side Request Forgery in FlowiseAI Flowise before 3.1.0 lets authenticated users abuse the Custom Function feature to reach internal network resources such as cloud metadata endpoints. The application's HTTP_DENY_LIST only wraps the axios and node-fetch libraries, so attacker-supplied JavaScript that imports the native Node.js http, https, or net modules sidesteps SSRF controls entirely. Publicly available exploit code exists (SSVC: PoC) with a demonstrated AWS EC2 IAM-credential theft path, though EPSS remains very low at 0.04%.
Technical ContextAI
Flowise is a low-code, drag-and-drop builder for LLM orchestration flows written in Node.js. Its Custom Function node executes user-supplied JavaScript inside a NodeVM sandbox (vm2-style) configured in packages/components/src/utils.ts. SSRF hardening is implemented in packages/components/src/httpSecurity.ts via a checkDenyList() function, but that check is only bound to mocked wrappers for axios and node-fetch injected through the sandbox's require.mock option. The sandbox's require.builtin allowlist (defaultAllowBuiltInDep) simultaneously grants direct access to the native http, https, net, dns, and dgram modules with no equivalent filtering. This maps to CWE-284 (Improper Access Control): a security control exists but is applied to an incomplete set of code paths, leaving a functionally equivalent primitive unguarded.
RemediationAI
Vendor-released patch: 3.1.0 - upgrade both the flowise and flowise-components npm packages to 3.1.0 or later, which extends SSRF protection to the native modules (see GHSA-xhmj-rg95-44hv). Until upgrading, restrict who can create or edit Custom Function nodes: treat Custom Function code execution as an administrative privilege and remove it from lower-trust accounts, since HTTP_DENY_LIST alone does not stop the http/https/net bypass. As network-level compensating controls, run the Flowise instance where it cannot reach sensitive internal endpoints - on AWS enforce IMDSv2 and set the metadata hop limit to 1 (blocks the 169.254.169.254 credential-theft path; side effect: applications relying on IMDSv1 break), and apply egress firewall rules or a NAT/security-group policy denying outbound traffic to link-local and internal RFC1918 ranges (side effect: legitimate internal integrations from flows will also be blocked). Rotate any IAM role or instance credentials if exposure is suspected. Advisory URLs: https://github.com/FlowiseAI/Flowise/security/advisories/GHSA-xhmj-rg95-44hv and https://vuldb.com/vuln/359211.
A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could
FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t
Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete
Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc
An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi
Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin
The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
Same weakness CWE-284 – Improper Access Control
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-25287
GHSA-xhmj-rg95-44hv