<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-17T18:35:55.046869+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-44568</id>
    <title>CVE-2026-44568 — Open WebUI: Stored XSS in Pending User Overlay via Incorrect DOMPurify Application Order</title>
    <updated>2026-10-17T18:35:55.065663+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> open-webui</p>
<p>Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the AccountPending.svelte component renders the admin-configured "Pending User Overlay Content" using marked.parse() inside {@html} with an incorrect DOMPurify application order. An admin can inject arbitrary JavaScript into the Pending User Overlay Content that executes in the browser context of any pending user who views the overlay page. This vulnerability is fixed in 0.9.0.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-44568"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-fq3v-xjjx-95rc</id>
    <title>GHSA-fq3v-xjjx-95rc — Open WebUI has Stored XSS in Pending User Overlay via Incorrect DOMPurify Application Order</title>
    <updated>2026-10-17T18:35:55.065732+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: open-webui</p>
<p>## Vulnerability Details</p>
<p>**CWE-79**: Cross-site Scripting (XSS)</p>
<p>The `AccountPending.svelte` component renders the admin-configured "Pending User Overlay Content" using `marked.parse()` inside `{@html}` with an incorrect DOMPurify application order:</p>
<p>### Vulnerable Code</p>
<p>**`src/lib/components/layout/Overlay/AccountPending.svelte` (lines 43-48)**:</p>
<p>```svelte
{@html marked.parse(
    DOMPurify.sanitize(
        ($config?.ui?.pending_user_overlay_content ?? '').replace(/\n/g, '&lt;br&gt;')
    )
)}
```</p>
<p>DOMPurify is applied to the raw Markdown input **before** `marked.parse()` processes it. This is the wrong order. DOMPurify sanitizes the Markdown text (which contains no HTML tags), then `marked.parse()` converts Markdown link syntax into HTML `&lt;a&gt;` tags with `javascript:` href, and the result is rendered with `{@html}` unsanitized.</p>
<p>The correct pattern (used elsewhere in the codebase, e.g., `NotebookView.svelte:77`) is:
```javascript
DOMPurify.sanitize(marked.parse(src))  // sanitize AFTER markdown parsing
```</p>
<p>## Steps to Reproduce</p>
<p>### Prerequisites
- Open WebUI v0.8.10
- Admin account
- A second user account with "pending" role</p>
<p>### Steps</p>
<p>1. Log in as admin and navigate to **Admin Settings** → **Settings** → **General**.</p>
<p>2. Set **Default User Role** to `pending`.</p>
<p>3. In the **Pending User Overlay Content** field, enter:
```
# Account Pending</p>
<p>Your account is under review.</p>
<p>[Contact Support](javascript:alert(document.domain))
```</p>
<p>4. Save the settings.</p>
<p>5. In a separate browser…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-fq3v-xjjx-95rc"/>
  </entry>
</feed>
