NewApp Monitoring is liveSign up free
AgentbeamBeta
AI agent vulnerability · Open WebUI

CVE-2026-26193: Open WebUI vulnerable to Stored XSS via iFrame embeds in response messages

highCVSS 3.1 7.3GHSA-vjm7-m4xh-7wrc

Open WebUI renders a response message's `embeds` property in an iFrame whose sandbox always allows scripts and same-origin access. A user who edits chat history can set `embeds` to a payload and share the chat, giving stored XSS against anyone who opens it. Affects open-webui 0.6.43 and earlier. Fixed in 0.6.44.

Published Jul 7, 2026 · Analysis Oct 25, 2026

What an attacker can do

In ResponseMessage.svelte, the iFrame for message.embeds hardcodes allowScripts and allowSameOrigin to true. That ignores the admin setting "iframe Sandbox Allow Same Origin". The embeds value comes from the stored chat, and a user can set it by intercepting the save request after editing a model response and adding an embeds key to the message object under history.messages.

The payload fires on page refresh and also in the shared-chat view, so one share link can reach every user on the instance. No click on a citation is needed. The victim only has to open the chat.

A payload can read the victim's token from local storage and send it to an attacker's server, which gives account takeover. An admin victim risks server RCE through the chain in GHSA-w7xj-8fx7-wfch, per the advisory. The attacker needs a normal account.

Who is affected

Affected: pip package open-webui 0.6.43 and earlier. Patched in 0.6.44. All deployments that allow chat editing and sharing are exposed, whatever the sandbox setting says.

pip show open-webui

For Docker, check the image tag or the version on the About page.

open-webui

Ecosystem
PyPI
Affected
<= 0.6.43
Fixed in
0.6.44
Check
pip show open-webui

How to fix it

Upgrade open-webui to 0.6.44 or later.

pip install -U open-webui

For Docker, pull a newer image and recreate the container. The advisory lists no workaround and does not describe the patch. Note that CVE-2026-26192, a related citation XSS, needs 0.7.0, so moving to 0.7.0 or later covers both.

How to tell if you were hit

Look in stored chat JSON for message objects in history.messages that carry an embeds key you did not expect, especially on assistant responses that a user edited. Check access logs for chat-save requests that do not come from the normal UI, then for shared-chat views of the same chat. Unexpected browser requests to unknown hosts after users open shared chats can point to token exfiltration.

Original advisory

From the GitHub Advisory Database (CC BY 4.0).

Summary

Manually modifying chat history allows setting the embeds property on a response message, the content of which is loaded into an iFrame with a sandbox that has allow-scripts and allow-same-origin set, ignoring the "iframe Sandbox Allow Same Origin" configuration. This enables stored XSS on the affected chat. This also triggers when the chat is in the shared format. The result is a shareable link containing the payload that can be distributed to any other users on the instance.

Details

The flaw stems from how iFrames are constructed here: https://github.com/open-webui/open-webui/blob/6f1486ffd0cb288d0e21f41845361924e0d742b3/src/lib/components/chat/Messages/ResponseMessage.svelte#L689-L703

messages.embeds is a user controlled property and so can be arbitrarily set by the user to a payload of their choosing. Since allowScripts and allowSameOrigin are harcoded as true here the sandboxing offers essentially no protection.

PoC

Create an arbitrary chat:

Edit the model 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 corresponds to the edited text.

On this object, add an embeds key and list value as shown below, forward the request and refresh the page.

This results in XSS via the controlled content getting rendered in the iFrame. Note the bold text is just to aid demonstration. console.log is used to prove JS execution because the lack of allow-modals on the iFrame sandbox prevents alerts.

The same payload triggers when the chat is shared.

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 GHSA-w7xj-8fx7-wfch.

Credited to gg0h.

Questions

Does the iframe sandbox setting protect me?

No. The advisory says the code hardcodes allowScripts and allowSameOrigin as true and ignores the "iframe Sandbox Allow Same Origin" configuration.

Does the victim need to click anything?

The advisory describes it as rendering when the chat loads or the shared chat is viewed. Its CVSS vector still lists user interaction, since the victim must open the chat.

Which version fixes CVE-2026-26193?

Open WebUI 0.6.44. Versions 0.6.43 and earlier are affected.

References

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 entries