CVE-2026-87996

Open WebUI: SSRF into internal services via DNS rebinding in the Playwright web loader

Published Sep 9, 2026 CVSS 3.1 · 7.7 High EPSS < 1% KEV · Not listed
Description
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.6 until 0.11.1, SafePlaywrightURLLoader in backend/open_webui/retrieval/web/utils.py validated a user-controlled hostname in Python and then let the Playwright browser resolve it again in the sync and async request interceptors. An authenticated user controlling authoritative DNS could return a public address to validation and an internal address to the browser, exposing responses from internal services or cloud metadata through web search or URL ingestion. This issue is fixed in version 0.11.1.

Analysis

AI-generated

Technical impact

The vulnerability resides in SafePlaywrightURLLoader, which validates a hostname supplied by an authenticated user but then allows a second resolution by Playwright. An attacker with authority over DNS can give the loader a public address that satisfies validation and an internal address that Playwright resolves, causing the system to retrieve responses from internal services or cloud metadata. The breach can expose sensitive internal data and is a classic SSRF via DNS rebinding.

Affected Systems

Open WebUI, versions 0.9.6 through 0.11.1. The issue is fixed in version 0.11.1 and later.

Risk and Exploitability

The CVSS score of 7.7 indicates a high severity. EPSS is not available, and the vulnerability is not listed in CISA’s KEV catalog. Exploitation requires an authenticated user who can influence DNS resolution. The attacker can then read responses from internal endpoints, potentially leaking confidential information or gaining further footholds in the internal network.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Open WebUI to version 0.11.1 or later, which removes the vulnerable URL loader.
  • Configure DNS controls or modify the SafePlaywrightURLLoader to reject internally resolvable addresses, preventing DNS rebinding from succeeding.
  • Deploy network segmentation or firewall rules that block outbound requests from the Playwright component to internal IP ranges, limiting the impact of any residual SSRF capabilities.

Generated by OpenCVE AI on September 9, 2026 at 22:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-4v28-j6q3-5m4r Open WebUI: SSRF into internal services via DNS rebinding in the Playwright web loader
History
Type Values Removed Values Added
First Time appeared Openwebui
Openwebui open Webui
CPEs cpe:2.3:a:openwebui:open_webui:*:*:*:*:*:*:*:*
Vendors & Products Openwebui
Openwebui open Webui
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Open-webui
Open-webui open-webui
Vendors & Products Open-webui
Open-webui open-webui
Type Values Removed Values Added
Description Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.6 until 0.11.1, SafePlaywrightURLLoader in backend/open_webui/retrieval/web/utils.py validated a user-controlled hostname in Python and then let the Playwright browser resolve it again in the sync and async request interceptors. An authenticated user controlling authoritative DNS could return a public address to validation and an internal address to the browser, exposing responses from internal services or cloud metadata through web search or URL ingestion. This issue is fixed in version 0.11.1.
Title Open WebUI: SSRF into internal services via DNS rebinding in the Playwright web loader
Weaknesses CWE-367
CWE-918
References
Metrics cvssV3_1

{'score': 7.7, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N'}

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition

  • CWE-918

    Server-Side Request Forgery (SSRF)

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Sep 10, 2026, 1:48 PM
Reserved
Sep 9, 2026, 7:19 PM
Status
Analyzed
Published
Sep 9, 2026, 10:18 PM
Modified
Sep 16, 2026, 3:14 PM