CVE-2026-54011High· 8.7▾ TwilightOpen WebUI: Stored XSS in Mermaid Markdown Preview
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 47.8 · likelihood 0.1 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Jul 4.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via GHSA
0.2%
0.2% → 0.3%
Open WebUI renders Mermaid blocks from Markdown files in the file preview panel and inserts the generated SVG into the DOM using innerHTML.
Because Mermaid is configured with securityLevel: 'loose', attacker-controlled Mermaid content can be rendered unsafely in this flow. A working payload was validated through the Markdown preview path, resulting in JavaScript execution in the victim’s browser under the application origin.
This is a confirmed stored XSS vulnerability reachable through normal product functionality.
mainv0.8.12Mermaid is initialized in permissive mode:
https://github.com/open-webui/open-webui/blob/9bd84258d09eefe7bf975878fb0e31a5dadfe0f8/src/lib/utils/index.ts#L1698 The file preview path renders Mermaid output and injects the returned SVG into the DOM:
A successful exploit allows JavaScript execution in the victim’s browser under the Open WebUI origin when a malicious Markdown file is opened in the preview panel.
A malicious .md file containing the follwowing contents can be used to trigger the bug:
```mermaid
flowchart LR
A[click me]
click A href "javascript:alert(document.domain)" "x"
```
Steps to reproduce:
1- Create a new chat
2- Enable Code Interpreter and browse and upload the file with .md extension.
<img width="331" height="258" alt="image" src="https://github.com/user-attachments/assets/bce2b754-56d1-4da1-90a9-22bcb93269f2" />
3- Clicking on the file, and clicking click me should pop an alert
<img width="1103" height="485" alt="image" src="https://github.com/user-attachments/assets/18754486-799b-434e-a2fc-dd7c09956a29" />
Since mermaid has DOMPurify as a built-in, it is recommended to use the strict mode instead of loose.
open-webui <= 0.9.5Upgrade to a patched release:
open-webui 0.9.6Connected by shared product, vendor, weakness, or advisory.
CVE-2026-59214High· 7.3Open WebUI: Stored web worker XSS via Pyodide
CVE-2025-46571MediumOpen WebUI allows limited stored XSS vila uploaded html file
CVE-2025-46719HighOpen WebUI vulnerable to stored XSS via unescaped markdown token in MarkdownTokens.svelte leading to full account takeover and RCE via functions
CVE-2026-26192High· 7.3Open WebUI vulnerable to Stored XSS via iFrame in citations model
CVE-2026-26193High· 7.3Open WebUI vulnerable to Stored XSS via iFrame embeds in response messages
CVE-2026-54013High· 7.6Open WebUI: Stored XSS to Account Takeover via Model Profile Images