<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Cve-2026-45315 - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/cve-2026-45315/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 14 May 2026 20:31:48 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/cve-2026-45315/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Open WebUI Stored XSS Vulnerability via Audio Transcription Endpoint (CVE-2026-45315)</title><link>https://feed.craftedsignal.io/briefs/2026-05-open-webui-xss/</link><pubDate>Thu, 14 May 2026 20:31:48 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-open-webui-xss/</guid><description>Open WebUI is vulnerable to stored XSS via an attacker-controlled file extension in the /api/v1/audio/transcriptions endpoint (CVE-2026-45315), allowing a verified user with the chat.stt permission to upload a polyglot WAV+HTML file, tricking other users into executing arbitrary script code within the Open WebUI origin, leading to session token theft and full account takeover.</description><content:encoded><![CDATA[<p>Open WebUI version 0.9.2 and earlier is vulnerable to a stored cross-site scripting (XSS) attack. The vulnerability resides in the <code>/api/v1/audio/transcriptions</code> endpoint, which allows users to upload audio files for transcription. An attacker with a verified account and the default-enabled <code>chat.stt</code> permission can upload a specially crafted file disguised as audio but containing malicious HTML and JavaScript code. The server saves the file with an extension derived directly from the user-supplied filename without proper validation, enabling the stored XSS.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker with a verified user account authenticates to the Open WebUI instance.</li>
<li>The attacker crafts a polyglot WAV+HTML file, containing both valid WAV audio data and embedded JavaScript code designed for XSS.</li>
<li>The attacker uploads the malicious file to the <code>/api/v1/audio/transcriptions</code> endpoint, naming the file with an <code>.html</code> extension (e.g., <code>pwn.html</code>).</li>
<li>The server saves the file to the <code>CACHE_DIR/audio/transcriptions/</code> directory, using the attacker-supplied <code>.html</code> extension.</li>
<li>The server generates a unique identifier (UUID) for the file and constructs the final file path using the UUID and the attacker-supplied extension.</li>
<li>A victim user clicks a link to the cached file served by the <code>/cache/{path}</code> route (e.g., <code>/cache/audio/transcriptions/&lt;uuid&gt;.html</code>).</li>
<li>The server serves the file with a <code>Content-Type: text/html</code> header based on the <code>.html</code> extension.</li>
<li>The victim's browser executes the embedded JavaScript code in the context of the Open WebUI origin, allowing the attacker to steal sensitive information, such as the JWT token stored in <code>localStorage</code>, leading to account takeover.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This stored XSS vulnerability (CVE-2026-45315) allows an attacker to execute arbitrary JavaScript code within the Open WebUI application on behalf of a victim user. An attacker can steal the victim's session token (JWT), which is stored in <code>localStorage</code>, and the OAuth token cookie is non-HttpOnly, gaining complete control over the victim's account. This includes the ability to view sensitive data, modify settings, and perform actions as the compromised user. Exploitation requires only a single click by the victim.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the patch or upgrade to a version of Open WebUI greater than 0.9.2 to remediate CVE-2026-45315.</li>
<li>Implement strict validation of file extensions and MIME types on the <code>/api/v1/audio/transcriptions</code> endpoint to prevent uploading of malicious files.</li>
<li>Configure the <code>/cache/{path}</code> route to force <code>Content-Disposition: attachment</code> and <code>X-Content-Type-Options: nosniff</code> to prevent the browser from interpreting files based on their content.</li>
<li>Move the JWT token to an <code>HttpOnly</code> cookie to prevent JavaScript code from accessing it.</li>
<li>Set the <code>SameSite</code> attribute for the OAuth token cookie to <code>Lax</code> to mitigate cross-site request forgery (CSRF) attacks.</li>
<li>As a workaround, set <code>USER_PERMISSIONS_CHAT_STT=False</code> to revoke upload rights from non-administrators.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>stored xss</category><category>open webui</category><category>cve-2026-45315</category></item></channel></rss>