Mar 11, 2026·5 min read·44 visits
High-severity SSRF in Flowise < 3.0.13 via unvalidated HTTP Node URLs allows internal network scanning and metadata exfiltration. Fixed in 3.0.13 via IP blocklisting.
Flowise versions prior to 3.0.13 are vulnerable to a High-severity Server-Side Request Forgery (SSRF) flaw in the HTTP Node component. Attackers with access to modify chatflows can force the server to execute unauthorized requests against internal network boundaries, cloud metadata endpoints, and local services.
Flowise is a drag-and-drop user interface designed for building customized large language model (LLM) workflows. The core functionality relies on various nodes that connect APIs, local models, and external services to facilitate complex data processing pipelines. Within these workflows, the AgentFlow and Chatflow components utilize an HTTP Node to perform server-side requests to external endpoints.
CVE-2026-31829 identifies a Server-Side Request Forgery (SSRF) vulnerability within this HTTP Node implementation. In versions prior to 3.0.13, the application fails to validate or restrict the target URLs supplied to the node. This architectural flaw permits users to specify arbitrary destinations, which the backend server will dutifully query without considering the network boundaries or security context of the target.
The resulting impact is substantial, as it transforms the Flowise server into an unauthenticated proxy for malicious actors. Attackers can leverage this capability to bypass external firewalls, interact with loopback interfaces, and access sensitive internal services that are otherwise protected from internet-facing traffic.
The root cause of CVE-2026-31829 lies in the absence of input sanitization and destination validation within the HTTP Node's execution logic. When a workflow is triggered, the node extracts the user-defined URL from its configuration properties and passes it directly to the underlying HTTP client library. The application does not perform preliminary checks against the resolved IP address or the hostname structure.
In a secure implementation, an application performing outbound web requests must perform DNS resolution on the target hostname and compare the resulting IP address against a strict allowlist or blocklist. Flowise versions prior to 3.0.13 omit this critical validation phase. Consequently, the application initiates TCP connections regardless of whether the resolved IP address resides in a restricted network space, such as an RFC 1918 private subnet or a loopback address.
Furthermore, the application lacks protections against DNS rebinding attacks or redirects to internal services. The HTTP client blindly follows the protocol instructions provided by the user input, allowing access to administrative panels, local databases, or cloud provider metadata endpoints that rely solely on network-level segmentation for security.
Exploitation of CVE-2026-31829 requires the attacker to possess the ability to create or modify a flow within the Flowise environment. This prerequisite is met if the attacker has authenticated access to the management interface or if a specific chatflow is publicly exposed and permits user-driven modifications. The required privileges are classified as low, as any user capable of interacting with the flow designer can orchestrate the attack.
The attack methodology begins with the construction of a malicious workflow. The attacker inserts an HTTP Node and configures the target URL parameter to point to a restricted internal endpoint. High-value targets typically include http://169.254.169.254/latest/meta-data/ for AWS EC2 instance metadata, http://localhost:11434 for local Ollama instances, or standard private IP ranges such as 10.0.0.0/8.
Upon executing the flow, the Flowise backend processes the node and issues the HTTP GET or POST request to the specified internal address. The server captures the HTTP response from the targeted internal resource and returns it to the attacker through the flow's standard output mechanism. This allows the attacker to read the contents of the response, completing the data exfiltration cycle.
The primary consequence of this SSRF vulnerability is the complete circumvention of network perimeter defenses. By forcing the Flowise application to act as a proxy, attackers gain the ability to interact with the internal network environment from the perspective of the compromised server. This invalidates firewall rules and Access Control Lists (ACLs) designed to protect internal assets from external interaction.
The highest severity risk involves the compromise of cloud infrastructure via the instance metadata service (IMDS). If the Flowise application is hosted on an AWS EC2 instance or an equivalent cloud compute environment, querying 169.254.169.254 permits the exfiltration of temporary Identity and Access Management (IAM) credentials. These credentials facilitate lateral movement into the broader cloud account, potentially leading to widespread data breaches or infrastructure takeover.
Additionally, the vulnerability supports systematic internal network reconnaissance. Attackers can automate requests across private IP ranges to perform port scanning and service enumeration. This activity identifies secondary targets, such as unauthenticated internal administrative interfaces, databases, or microservices, paving the way for further exploitation and deeper network compromise.
The vulnerability is officially remediated in Flowise version 3.0.13. The maintainers addressed the flaw by introducing a comprehensive host restriction policy within the HTTP Node's execution path. This patch intercepts outbound requests and validates the target destination prior to initiating the network connection.
The technical fix implements a default blocklist that denies access to common internal and private network addresses, including loopback interfaces and RFC 1918 IP spaces. To provide operational flexibility, the patch also introduces a new environment variable named HTTP_DENY_LIST. This variable allows systems administrators to define custom blocklists, enabling the restriction of specific hostnames or IP subnets tailored to their unique deployment environment.
When the patched application detects an attempt to query a restricted address, it gracefully aborts the connection and returns a standardized error message: "Error: Access to this host is denied by policy." Organizations utilizing Flowise must upgrade to version 3.0.13 immediately. Administrators should subsequently review their integrations, as the default deny policy may disrupt legitimate workflows that rely on accessing local services, as documented in user reports following the patch release.
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L| Product | Affected Versions | Fixed Version |
|---|---|---|
Flowise FlowiseAI | < 3.0.13 | 3.0.13 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-918 |
| Attack Vector | Network |
| CVSS Score | 7.1 |
| Impact | High (Confidentiality & Integrity) |
| Exploit Status | Proof of Concept Available |
| Patch Version | 3.0.13 |
The web application does not validate or incorrectly validates user-provided URLs before making a request to the designated resource.
CVE-2024-29203 identifies a cross-site scripting (XSS) vulnerability in the content ingestion and parsing mechanics of TinyMCE rich text editor. Due to a failure to enforce sandbox attributes on dynamic iframe elements and safely handle legacy embed objects, unauthenticated attackers can inject malicious elements that execute scripts within the context of the parent application session.
A technical breakdown of the OS command injection vulnerability in the shell-quote NPM package (CVE-2026-9277 / GHSA-w7jw-789q-3m8p). The bug resides in the character-by-character backslash-escaping logic applied to the .op field of object-tokens within the quote() function, which fails to match and escape line terminators due to a regex matching oversight in JavaScript. This allows unauthenticated remote attackers to execute arbitrary shell commands if they can control inputs processed by this library.
A high-severity memory corruption vulnerability exists in the V8 JavaScript engine of Google Chrome before versions 149.0.7827.102/103. The flaw arises from an incorrect bounds-check elimination during JIT compilation by the TurboFan optimizer, allowing remote attackers to achieve out-of-bounds read and write access inside the sandboxed renderer process.
An improper authentication vulnerability (CWE-287) exists in the legacy, deprecated Internet Key Exchange version 1 (IKEv1) key exchange protocol implementation in Check Point Security Gateways. The vulnerability is caused by a logic flow weakness during the certificate validation process for Remote Access VPN and Mobile Access (SSL VPN) connections. An unauthenticated remote attacker can exploit this weakness to bypass user authentication entirely, establishing a fully functional Remote Access VPN connection without a valid password.
GeoNode versions prior to 4.4.5 and 5.0.2 are vulnerable to Server-Side Request Forgery (SSRF) in the service registration endpoint. Authenticated attackers with low privileges can exploit insufficient input validation in the Web Map Service (WMS) registration module to force the application server to make outbound network queries to loopback addresses, private RFC1918 subnets, link-local scopes, and cloud metadata endpoints. This technical report details the mechanics of the vulnerability, the underlying architectural flaw, and how to effectively remediate and mitigate the associated security risks.
CVE-2022-0492 is a high-severity missing authorization vulnerability in the Linux kernel's Control Groups (cgroups) v1 implementation. The flaw resides within the cgroup_release_agent_write function in kernel/cgroup/cgroup-v1.c, where the kernel fails to validate if the process writing to the release_agent file possesses administrative capabilities in the initial user namespace. This allows a local attacker inside a container with root privileges (UID 0) to abuse user namespaces, mount a cgroups v1 directory, modify the release_agent parameter, and execute arbitrary commands on the host system as host root, effectively achieving a complete container escape.