Critical SSRF Bypass Discovered in Flowise via IPv4-Mapped IPv6 Addresses
A newly identified vulnerability allows attackers to circumvent Server-Side Request Forgery protections, impacting Flowise versions up to v3.1.1.
A critical security vulnerability has been identified in Flowise, a low-code AI tool, that allows for a complete bypass of its Server-Side Request Forgery (SSRF) protections. This flaw, stemming from the mishandling of IPv4-mapped IPv6 addresses, poses a significant risk to any applications or platforms utilizing Flowise or similar IP validation logic, including components within the broader Minecraft ecosystem.
The Vulnerability Explained
The core of the vulnerability lies within Flowise's HTTP security module (httpSecurity.ts), specifically in the isDeniedIP() function. This function is responsible for checking incoming IP addresses against a deny list to prevent SSRF attacks. It utilizes the ipaddr.js library for IP parsing and comparison.
The critical flaw occurs when IPv4-mapped IPv6 addresses, such as ::ffff:127.0.0.1 or ::ffff:169.254.169.254, are processed. While these addresses conceptually point to an IPv4 address, the ipaddr.js library identifies their kind() as 'ipv6'. However, deny list rules for IPv4 addresses are typically defined using IPv4 CIDR notation, which ipaddr.js parses with a kind() of 'ipv4'. This fundamental mismatch in kind() during the comparison causes all IPv4 CIDR deny rules to be silently skipped when an IPv4-mapped IPv6 address is encountered.
How It Works
An attacker can exploit this vulnerability by controlling the DNS resolution for a hostname. By setting an AAAA (IPv6) record for a malicious hostname to ::ffff:<target_ipv4>, the attacker can effectively trick the vulnerable system. When Flowise (or any software using this flawed logic) attempts to resolve and connect to this hostname, it receives the IPv4-mapped IPv6 address.
During the security check, the isDeniedIP() function receives this ::ffff:<target_ipv4> address. Because its kind() is 'ipv6', it fails to match against any IPv4 CIDR entries in the deny list, which are parsed as 'ipv4'. Consequently, the security module bypasses the intended SSRF protection, allowing the application to make requests to the target_ipv4 address. This can grant unauthorized access to sensitive internal services, cloud metadata endpoints, or even localhost resources that would otherwise be protected by the deny list.
Affected Systems and Scope
This SSRF protection bypass affects all Flowise versions up to and including v3.1.1. Notably, the advisory states that this includes versions where a previous related vulnerability, CVE-2026-31829, was supposedly patched (v3.0.13+), indicating that the existing fixes were insufficient or that this represents a new bypass vector.
While Flowise itself is a low-code AI tool, the underlying vulnerability in IP address handling is a common pattern that could affect various software components. Developers and administrators within the Minecraft ecosystem, particularly those building web services, backend platforms, or tools that interact with external APIs and rely on IP-based deny lists, should be aware of this class of vulnerability.
Why This Matters
For Developers: This advisory serves as a critical reminder to implement robust IP address normalization and validation. Developers using Flowise should update to a patched version immediately once available. For those using ipaddr.js or similar libraries in their own projects, it is crucial to review IP validation logic to ensure that IPv4-mapped IPv6 addresses are correctly handled and normalized before being compared against security deny lists. Adhering to the principle of least privilege and network segmentation can also mitigate the impact of such bypasses.
For Server Administrators and Platform Operators: If your infrastructure incorporates Flowise or other applications that handle network requests and rely on IP-based access controls, you must assess your exposure to this vulnerability. An SSRF bypass can lead to severe consequences, including unauthorized data access, internal network reconnaissance, and the ability to execute unauthorized actions against internal services. Ensure that internal services are not exposed to applications that can be tricked into making arbitrary requests, and maintain vigilance over network traffic patterns.
FAQ
What is Server-Side Request Forgery (SSRF)?
SSRF is a web security vulnerability that allows an attacker to cause the server-side application to make HTTP requests to an arbitrary domain of the attacker's choosing. This can lead to unauthorized access to internal services, data disclosure, and other malicious activities.
How does this Flowise vulnerability work?
The vulnerability exploits a flaw in how Flowise's security module handles IPv4-mapped IPv6 addresses. Due to a type mismatch in the ipaddr.js library, IPv4 deny list rules are silently skipped when an attacker provides an IPv4-mapped IPv6 address, bypassing security checks.
Which versions of Flowise are affected?
All versions of Flowise up to and including v3.1.1 are affected. This also includes versions v3.0.13 and newer, where a previous related CVE was supposedly patched, indicating that the new bypass circumvents existing fixes.
What are the potential impacts of this bypass?
An attacker can use this bypass to access internal services, cloud metadata endpoints, and localhost resources that should otherwise be protected. This could lead to data breaches, unauthorized API calls, and network reconnaissance within the affected system's environment.
Is there a patch available for this vulnerability?
The provided advisory does not explicitly mention an available patch. It states that all versions up to v3.1.1 are affected, including those where a previous CVE was patched, implying that a fix for this specific bypass is still required or in development.