CVE-2026-87996
## Summary With the Playwright web loader enabled, Open WebUI checks the address behind a user-submitted URL before allowing the request, then handed the request to the browser to perform. The browser resolved the hostname a second time, on its own, and that answer was never checked. An attacker who controls the authoritative DNS for a hostname they submit can answer the first lookup with a public address and the second with an internal one, so the browser connects to an address the check exists to block. The connection-layer pinning that protects the other fetch paths could not apply here, because the request ran inside the browser rather than through our own HTTP clients. ## Preconditions - `WEB_LOADER_ENGINE=playwright`. This is not the default, and deployments on the default web loader are unaffected. - A reachable Playwright browser, either local or via `PLAYWRIGHT_WS_URL`. - Any authenticated user who can submit a URL for ingestion or trigger a web search. No administrator role is required. - Control of the authoritative DNS for a hostname the attacker submits, serving a short TTL and alternating answers. No timing race is needed, because the two lookups are separate queries the attacker answers differently. - Internal services the browser process can actually reach. A deployment whose browser has no route to internal addresses loses nothing here. ## Impact An authenticated user can make the server read HTTP responses from addresses only it can reach: cloud instance metadata, loopback-bound admin APIs, and internal services on the same network. The response body is fulfilled back into the page, and the loader returns that page as the document, so the content lands in the web-search or ingestion result the user receives. On a cloud host with IMDSv1 reachable, that is enough to take instance IAM credentials. Because the intercepted request forwards the original method and headers, a page the attacker controls can also drive requests that need a header or a no
Properties
- severity
- high
- summary
- Open WebUI: SSRF into internal services via DNS rebinding in the Playwright web loader
- epss_score
- 0.00207
- cvss_score
- 7.7
- ghsa_published
- 2026-09-10T15:10:12Z
- source_url
- https://github.com/advisories/GHSA-4v28-j6q3-5m4r
- ghsa_updated
- 2026-09-10T15:10:12Z
- ghsa_id
- GHSA-4v28-j6q3-5m4r
- cve_id
- CVE-2026-87996
- cvss_vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
- is_ghsa_only
- false
- epss_percentile
- 0.10846
Related Entities (6)
ENRICHED_BY (1)
VULNERABLE_TO (1)
AFFECTS (1)
HAS_WEAKNESS (2)
REPORTED_BY (1)
Explore deeper with Ninja Signal's threat intelligence graph