CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-70485

CVE-2026-70485: Server-Side Request Forgery in Open WebUI via NAT64 IP Wrapping Bypass

Alon Barad
Alon Barad
Software Engineer

Aug 4, 2026·5 min read·6 visits

Executive Summary (TL;DR)

An SSRF vulnerability in Open WebUI allows authenticated users to access cloud metadata and internal assets by wrapping private IPv4 addresses in a NAT64 IPv6 prefix.

Open WebUI is susceptible to Server-Side Request Forgery (SSRF) when deployed in networks with NAT64 translation gateways. Authenticated users can bypass host validation checks by encapsulating internal or cloud-metadata IPv4 addresses within globally-routable IPv6 transition prefixes.

Vulnerability Overview

Open WebUI is an extensible, self-hosted AI platform containing features for Retrieval-Augmented Generation (RAG) ingestion, web-search retrieval, and URL-to-markdown conversion. To facilitate these features, the application accepts user-supplied URLs and fetches their content. To prevent Server-Side Request Forgery (SSRF) attacks against internal endpoints, the application implements an IP address validation mechanism.

From version 0.9.0 up to version 0.11.0, this validation mechanism relies on verifying whether the resolved IP addresses of the destination host are globally routable. However, the validation layer is insufficient when deployed within environments utilizing transition mechanisms, such as NAT64 gateways. This insufficient validation allows authenticated remote users to bypass SSRF controls and access local or cloud-metadata endpoints.

Root Cause Analysis

The root cause of the vulnerability lies in the implementation of the IP validation logic in backend/open_webui/retrieval/web/utils.py. The system attempts to resolve user-supplied hostnames and passes the resulting IP addresses to the standard Python ipaddress library to check the is_global property. If the property evaluates to false, the request is blocked as a local or private address.

In dual-stack or IPv6-only network environments, a NAT64 gateway is commonly employed to translate IPv4 traffic to IPv6. This translation is typically accomplished by prepending a Well-Known Prefix (WKP) of 64:ff9b::/96 (RFC 6052) or a Network-Specific Prefix (NSP) to the target IPv4 address. For example, the AWS metadata address 169.254.169.254 becomes [64:ff9b::a9fe:a9fe] under the standard NAT64 prefix.

Python's standard library ipaddress module treats the 64:ff9b::/96 block as part of the globally routable IPv6 address space. Consequently, checking ipaddress.ip_address("64:ff9b::a9fe:a9fe").is_global returns True. This allows transition-wrapped private IPv4 addresses to bypass the validation filters and reach the NAT64 gateway, which decapsulates the address back to its private IPv4 form and completes the connection.

Code Analysis

In vulnerable versions, the application validated the IP address directly using ipaddress.ip_address(ip).is_global without inspecting for transition encodings. The patch introduced in commit 1717b493d83c86afa82aa8bc50139250852dd2f3 implements a helper function _is_global_addr(ip) to recursively unwrap embedded IPv4 addresses from transition protocols.

# File: backend/open_webui/retrieval/web/utils.py
 
def _is_global_addr(ip: str) -> bool:
    addr = ipaddress.ip_address(ip)
    if not addr.is_global:
        return False
    if not isinstance(addr, ipaddress.IPv6Address):
        return True
 
    embedded = []
    if addr.ipv4_mapped:
        embedded.append(addr.ipv4_mapped)
    if addr.sixtofour:
        embedded.append(addr.sixtofour)
    if addr.teredo:
        embedded.extend(addr.teredo)
 
    b = addr.packed
    if b[:12] == b"\x00" * 12:
        embedded.append(ipaddress.IPv4Address(b[12:]))
    elif b[:12] == b"\x00\x64\xff\x9b" + b"\x00" * 8:
        embedded.append(ipaddress.IPv4Address(b[12:]))
    elif b[:6] == b"\x00\x64\xff\x9b\x00\x01":
        if b[8] != 0:
            return False
        embedded.append(ipaddress.IPv4Address(bytes((b[6], b[7], b[9], b[10]))))
 
    return all(ip.is_global for ip in embedded)

The helper parses standard transition mechanisms including IPv4-mapped, 6to4, and Teredo addresses. It also implements manual byte-level matching for the NAT64 Well-Known Prefix (64:ff9b::/96) and the local-translation prefix (64:ff9b:1::/48) to extract the nested IPv4 address. The function then evaluates whether all extracted nested addresses are globally routable.

Exploitation Methodology

An attacker must have authenticated access to the Open WebUI instance. The exploitation relies on entering a specially crafted URL into features like the RAG URL ingestion or web-search field. The attacker translates the target private IPv4 address, such as the link-local metadata address 169.254.169.254, into its hexadecimal representation a9fe:a9fe and prepends the NAT64 prefix.

The resulting URL http://[64:ff9b::a9fe:a9fe]/latest/meta-data/ is submitted to the application. The backend validates the host by resolving the hostname and passing the IPv6 address to ipaddress.is_global. Because the Python library considers this address global, the validation checks pass.

The HTTP request is then dispatched. The outbound packet reaches the NAT64 gateway, which strips the prefix and forwards the TCP connection to the cloud metadata service on 169.254.169.254. The metadata service responds with the requested credentials, which are returned to the application and displayed to the user.

Impact Assessment

Successful exploitation of this SSRF vulnerability permits an authenticated attacker to read sensitive data from internal systems. This is particularly critical in cloud-native environments where the metadata endpoints (such as AWS EC2 metadata, Google Cloud metadata, or Kubernetes APIs) contain active IAM credentials, configuration parameters, and access tokens.

The vulnerability is classified with a CVSS 3.1 score of 7.1 (High) and vector CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:N. The complexity is rated high because the attack succeeds only on environments with dual-stack transitions or active NAT64 configurations. If these conditions are met, the confidentiality impact is high.

While there is currently no evidence of active exploitation in the wild, the maturity of the vulnerability remains theoretical. The exposure is limited to deployments using NAT64 translation services, which are common in IPv6-only container networks.

Remediation & Fix Completeness

The vulnerability is remediated in version 0.11.0 of Open WebUI. Administrators must upgrade their instances to this version or later to apply the validation helper. If an immediate upgrade is not feasible, administrators can disable local web-fetching functionality entirely by configuring the environment variable ENABLE_LOCAL_WEB_FETCH=False.

Additionally, host-level firewall configurations or security groups should be configured to drop outgoing traffic from the Open WebUI container to sensitive private addresses. For example, blocking access to 169.254.169.254/32 at the network level prevents successful exploitation regardless of application-level bypasses.

While the patch effectively blocks transitions using standard prefixes, it does not explicitly handle custom Network-Specific Prefixes (NSPs) defined by local network administrators. If a custom NSP is utilized for the NAT64 gateway, an attacker who obtains the prefix can construct a bypass. Therefore, network-level segregation remains the recommended defense-in-depth practice.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.1/ 10
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:L/A:N

Affected Systems

Open WebUI Deployments utilizing NAT64 gateways or dual-stack transition networks

Affected Versions Detail

Product
Affected Versions
Fixed Version
open-webui
open-webui
>= 0.9.0, < 0.11.00.11.0
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork (AV:N)
CVSS Score7.1 (High)
Exploit StatusProof-of-Concept / Theoretical Analysis
CISA KEV StatusNot Listed
ImpactInformation Disclosure / Confidentiality Bypass

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
CWE-918
Server-Side Request Forgery (SSRF)

The web application receives a user-supplied URL and fails to properly validate the target destination on networks supporting dual-stack transitions, allowing unauthorized retrieval of internal resources.

Vulnerability Timeline

First remediation commit pushed by vendor
2026-07-27
Official Security Advisory published
2026-08-04
CVE assigned and published
2026-08-04

References & Sources

  • [1]GitHub Advisory (GHSA-8x5v-cpv7-8jjp)
  • [2]Open WebUI Release v0.11.0
  • [3]Backend Validation Fix Commit
  • [4]CVE Official Record Page

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•38 minutes ago•CVE-2026-70494
8.1

CVE-2026-70494: Broken Access Control in Open WebUI Folder Deletion Endpoint

A critical broken access control vulnerability in Open WebUI (v0.10.0 to v0.11.0) allows authenticated write-collaborators to delete shared subfolders they do not own. Because deletion triggers a backend cascade using the folder owner's identity, this results in unauthorized permanent deletion of the owner's nested chats, messages, and files.

Alon Barad
Alon Barad
1 views•7 min read
•about 3 hours ago•CVE-2026-70474
7.6

CVE-2026-70474: Incorrect Authorization and Missing Authentication in Flowise OAuth2 Credential Endpoints

A critical authorization flaw exists in Flowise, a popular drag-and-drop orchestrator for building customized Large Language Model flows. Prior to version 3.1.3, multiple OAuth2 credential endpoints do not filter database lookups by the requesting entity's workspace context. This omission, combined with the exclusion of several endpoints from the global authentication pipeline, permits unauthenticated remote actors to access, manipulate, or steal access tokens linked to external service integrations.

Alon Barad
Alon Barad
2 views•5 min read
•about 4 hours ago•GHSA-RWRP-9823-P2XQ
6.5

GHSA-RWRP-9823-P2XQ: Incomplete Credential Redaction in Flowise API

An incomplete credential redaction mechanism in Flowise allows authenticated users with standard view permissions to retrieve sensitive decrypted third-party credentials in plaintext.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 5 hours ago•CVE-2026-69262
7.1

CVE-2026-69262: Incorrect Authorization Flaw in Flowise Chatflow Deletion Endpoint

CVE-2026-69262 is a high-severity incorrect authorization vulnerability (CWE-863) within the Flowise drag-and-drop LLM flow platform. Prior to version 3.1.3, Flowise did not enforce resource-type validation on its deletion endpoint. Although routing middleware ensured users held deletion privileges for either chatflows or agentflows, the service level lacked validation checks to verify whether the target resource matched the user's specific permissions. Consequently, an authenticated user with only agentflow deletion permissions could delete arbitrary chatflow configurations, leading to unauthorized state modification and service disruption.

Amit Schendel
Amit Schendel
4 views•7 min read
•about 6 hours ago•CVE-2026-69258
8.8

CVE-2026-69258: Unauthenticated Property Injection and Authorization Bypass in Flowise

CVE-2026-69258 is a high-severity property injection and unauthenticated authorization bypass vulnerability in Flowise, a drag-and-drop orchestration interface for building customized LLM workflows. In affected versions prior to 3.1.3, the unauthenticated prediction API endpoint (`POST /api/v1/prediction/:id`) processed client-controlled parameters inside an `overrideConfig` payload without authorization checks. The backend unconditionally spread this object into internal context structures, enabling unauthenticated remote attackers to overwrite critical session values, pollute execution contexts, and bypass flow restrictions.

Amit Schendel
Amit Schendel
8 views•5 min read
•about 7 hours ago•CVE-2026-69252
7.2

CVE-2026-69252: Broken Workspace Isolation and Missing Authorization in Flowise File Management API

CVE-2026-69252 represents a missing authorization check (CWE-862) in the files API route (`/api/v1/files`) of Flowise, a drag-and-drop user interface for building LLM flows. Prior to version 3.1.3, an authenticated API key or user could list, access, and delete files across arbitrary workspaces inside an organization, completely bypassing workspace logical boundaries.

Amit Schendel
Amit Schendel
5 views•5 min read