CVE-2026-26192: Open WebUI vulnerable to Stored XSS via iFrame in citations model
Open WebUI lets any user plant a stored XSS payload in a chat by editing the chat history so a citation's document metadata carries `html: true`. When another user opens that citation, the page renders it in an iFrame that can run scripts. Affects open-webui below 0.7.0. Upgrade to 0.7.0.
Published Jul 7, 2026 · Analysis Oct 25, 2026
What an attacker can do
The citation preview in CitationModal.svelte treats a document as HTML when its metadata has an html flag, and shows it in an iFrame. The sandbox of that iFrame hardcodes allow-scripts and allow-same-origin, so it protects almost nothing. A logged-in user intercepts the save request for an edited chat, adds html: true to a source's metadata, and replaces the document text with a script payload.
The payload also runs when the victim opens the chat through a share link. The attacker needs only a low-privilege account and one victim who expands the sources and clicks the poisoned document, which the advisory lists as a caveat.
Script in the Open WebUI origin can read the session token from local storage and send it to an attacker's server, which takes over the victim's account. If the victim is an admin, the advisory says the same chain described in GHSA-w7xj-8fx7-wfch can lead to remote code execution on the server. For a team running Open WebUI in front of models and tools, one shared chat link can turn into an admin compromise.
Who is affected
Affected: pip package open-webui below 0.7.0 (the advisory says 0.6.43 and earlier). Any instance where users can create and share chats is exposed. Check the installed version:
pip show open-webuiFor Docker, read the version in the Open WebUI admin settings, About page, or check the image tag you run.
open-webui
- Ecosystem
- PyPI
- Affected
- < 0.7.0
- Fixed in
- 0.7.0
- Check
pip show open-webui
How to fix it
Upgrade open-webui to 0.7.0.
pip install -U open-webui==0.7.0For Docker, pull a newer image tag and recreate the container. The advisory lists no workaround and does not describe the code change. Until you upgrade, avoid opening shared chats from people you do not trust, and do not click citation sources in them.
How to tell if you were hit
Search stored chats for source metadata containing "html": true in the chat JSON, since normal use does not set that flag by hand. Check the chat history rows for messages whose edit came from a manual API save. Look in access logs for chat-update requests followed by shared-chat views. Watch for unexpected outbound requests from users' browsers to unknown hosts right after they open a shared chat, and review admin sessions that you cannot account for.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
Manually modifying chat history allows setting the html property within document metadata. This causes the frontend to enter a code path that treats document contents as HTML, and render them in an iFrame when the citation is previewed. This allows stored XSS via a weaponised document payload in a chat. The payload also executes when the citation is viewed on a shared chat.
Details
The vulnerability stems from how iFrame are implemented here: https://github.com/open-webui/open-webui/blob/6f1486ffd0cb288d0e21f41845361924e0d742b3/src/lib/components/chat/Messages/Citations/CitationModal.svelte#L163-L170 The html attribute can be controlled by a user who manually edits the chat history. Since allow-scripts and allow-same-origin are harcoded here the sandboxing offers essentially no protection.
PoC
Create an arbitrary chat with a file upload attached:
Edit the response
Before saving, configure the browser to use an HTTP proxy tool (Burp/Caido/ZAP) and intercept the save request. Find the object within the history and then messages objects (not the messages array) that contains the document source.
Add html: true to metadata, update the document to an XSS payload, and forward the request.
Observe the payload is rendered in the iFrame and the javascript executes.
The payload also executes when viewed from a shared version of the chat.
Impact
Any user can create a weaponised chat that can be shared and subsequently used to target other users.
Low privilege users are at risk of having their session taken over by a payload that reads their token from local storage and exfiltrates it to an attacker controlled server.
Admins are at risk of exposing the server to RCE via same chain described in https://github.com/advisories/GHSA-w7xj-8fx7-wfch.
Caveats
The victim must expand the sources and click the document containing the payload to trigger this issue.
Credited to gg0h.
Questions
- Does CVE-2026-26192 need user interaction?
Yes. The victim must expand the sources of the chat and click the document that holds the payload. The attacker needs a low-privilege account, per the CVSS vector (PR:L, UI:R).
- Can this lead to remote code execution?
The advisory says an admin who triggers the payload exposes the server to RCE through the chain described in GHSA-w7xj-8fx7-wfch. For ordinary users the described result is session takeover.
- Which version of Open WebUI fixes it?
Version 0.7.0. The sibling embeds flaw, CVE-2026-26193, is fixed earlier in 0.6.44, so 0.7.0 covers both.
References
Read for this analysis:
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More Open WebUI vulnerabilities
All Open WebUI entriesCVE-2026-87011
Open WebUI: Unauthenticated requests can stall the server via uncached OIDC fetches in back-channel logout
high7.5Sep 10, 2026CVE-2026-87012
Open WebUI: Any authenticated user can suppress calendar alerts instance-wide via a non-numeric alert value
medium4.3Sep 10, 2026CVE-2026-87013
Open WebUI: Any authenticated user can start a non-terminating request via a folder parent cycle
medium4.3Sep 10, 2026CVE-2026-87014
Open WebUI: Admin demoted through SSO role sync keeps read and write access to all users' notes
medium6.5Sep 10, 2026CVE-2026-87015
Open WebUI: A user's session cookies are sent to tool servers configured for bearer authentication
medium6.8Sep 10, 2026CVE-2026-87016
Open WebUI: Sign-in as another user via wildcard characters in the OAuth subject claim on SQLite
high8.1Sep 10, 2026
