<?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/"><channel><title>Open-Webui (&lt;= 0.9.4) — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/open-webui--0.9.4/</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:37:19 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/open-webui--0.9.4/feed.xml" rel="self" type="application/rss+xml"/><item><title>Open WebUI SSRF Vulnerability via URL Parsing Discrepancy (CVE-2026-45400)</title><link>https://feed.craftedsignal.io/briefs/2026-05-open-webui-ssrf/</link><pubDate>Thu, 14 May 2026 20:37:19 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-open-webui-ssrf/</guid><description>Open WebUI versions 0.9.4 and earlier are vulnerable to Server-Side Request Forgery (SSRF) due to a parsing difference between the urlparse and requests libraries in the `validate_url` function, allowing attackers to bypass URL validation and make requests to internal IP addresses.</description><content:encoded><![CDATA[<p>Open WebUI versions 0.9.4 and earlier contain a server-side request forgery (SSRF) vulnerability (CVE-2026-45400) in the <code>validate_url</code> function. The vulnerability arises from inconsistent URL parsing between the <code>urlparse</code> and <code>requests</code> libraries. Specifically, <code>urlparse</code> may interpret a URL like <code>http://127.0.0.1:6666\@1.1.1.1</code> as pointing to the public IP address <code>1.1.1.1</code>, while the <code>requests</code> library interprets it as the internal IP address <code>127.0.0.1:6666</code>. This discrepancy allows an attacker to bypass the intended URL validation and make unauthorized requests to internal resources. Successful exploitation can lead to information disclosure or further internal network compromise. The vulnerability was reported on May 14, 2026.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker crafts a malicious URL with the format <code>http://127.0.0.1:6666\@public.ip.address</code>.</li>
<li>The user provides the crafted URL to Open WebUI, which uses the <code>validate_url</code> function to validate the URL.</li>
<li>The <code>validate_url</code> function uses <code>urllib.parse.urlparse</code> to parse the hostname of the URL.</li>
<li><code>urllib.parse.urlparse</code> incorrectly identifies the hostname as <code>public.ip.address</code> due to the presence of the <code>@</code> symbol after the internal IP address.</li>
<li>The validation logic considers <code>public.ip.address</code> as a public IP and approves the URL.</li>
<li>The application then uses the <code>requests.get</code> function to make a request to the validated URL.</li>
<li><code>requests.get</code> interprets the URL differently and sends the request to the internal IP address <code>127.0.0.1:6666</code>.</li>
<li>The attacker successfully makes a request to the internal IP address, achieving SSRF and potentially gaining access to sensitive information or internal services.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this SSRF vulnerability (CVE-2026-45400) in Open WebUI can allow an attacker to bypass URL validation and make unauthorized requests to internal resources. This may lead to information disclosure, access to internal services, or further compromise of the internal network. The severity is rated as high due to the potential for significant impact on confidentiality and integrity. Affected organizations may experience data breaches or service disruptions.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to a patched version of Open WebUI that addresses the URL parsing discrepancy.</li>
<li>Deploy the Sigma rule <code>Detect Open WebUI SSRF Attempt via Malicious URL</code> to detect attempts to exploit this vulnerability.</li>
<li>Review and harden URL validation logic within the Open WebUI application to ensure consistent parsing across different libraries.</li>
<li>Implement network segmentation and access controls to limit the impact of potential SSRF vulnerabilities.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">threat</category><category>ssrf</category><category>cve-2026-45400</category><category>open-webui</category><category>web-application</category><category>github-advisory</category></item><item><title>Open WebUI Stored XSS Vulnerability via OAuth Profile Picture</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 cross-site scripting (XSS) via OAuth profile picture handling, allowing an attacker to inject malicious SVG code and potentially takeover user accounts by exfiltrating JWT tokens.</description><content:encoded><![CDATA[<p>Open WebUI versions 0.9.4 and earlier are vulnerable to a stored cross-site scripting (XSS) attack due to improper validation of profile images when users sign in via OAuth. The application fetches a URL provided in the OAuth <code>picture</code> claim, infers the MIME type from the URL extension, and stores it as a data URI without proper sanitization. Specifically, an attacker can host a malicious SVG file and set their profile picture URL to that file. When a victim clicks the link to the attacker&rsquo;s profile image, the browser executes the SVG code, potentially leading to account takeover by exfiltrating the victim&rsquo;s JWT token. This vulnerability is similar to CVE-2025-64496 and CVE-2025-64495, which highlights trust boundary errors in Open WebUI.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker crafts a malicious SVG file containing JavaScript code to exfiltrate <code>localStorage.token</code>.</li>
<li>The attacker hosts the malicious SVG file on a publicly accessible server (e.g., <code>https://attacker.example/p.svg</code>).</li>
<li>The attacker configures their OAuth profile picture URL to point to the malicious SVG file.</li>
<li>The attacker signs in to Open WebUI via OAuth, triggering the application to fetch and store the SVG data URI as their profile image.</li>
<li>The attacker crafts a URL to their profile image endpoint (e.g., <code>https://target.example/api/v1/users/&lt;attacker-user-id&gt;/profile/image</code>) and shares it with a victim.</li>
<li>The authenticated victim clicks on the link.</li>
<li>The server serves the attacker-controlled SVG with <code>Content-Type: image/svg+xml</code> and <code>Content-Disposition: inline</code>.</li>
<li>The victim&rsquo;s browser renders the SVG, executes the embedded JavaScript, and exfiltrates the victim&rsquo;s JWT token to the attacker&rsquo;s server.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation can lead to account takeover of any authenticated user who clicks the malicious link. The attacker can then access the victim&rsquo;s chats, API keys, and potentially achieve remote code execution (RCE) via installed tools if the victim has the <code>workspace.tools</code> permission. Furthermore, the lack of SSRF protection allows an attacker to potentially read internal resources by pointing the <code>picture</code> claim at internal URLs.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Implement server-side MIME type validation in <code>_process_picture_url</code> (<code>utils/oauth.py:1336-1345</code>) to only allow <code>image/png</code>, <code>image/jpeg</code>, <code>image/gif</code>, and <code>image/webp</code>. Use the <code>Content-Type</code> response header instead of the URL extension.</li>
<li>Enforce a MIME whitelist in <code>get_user_profile_image_by_id</code> (<code>routers/users.py:504-528</code>) before building the <code>StreamingResponse</code>.</li>
<li>Apply the <code>validate_profile_image_url</code> validator at the model layer (<code>Users.update_user_profile_image_url_by_id</code>), not just at the Pydantic form layer, to ensure all profile image updates are validated.</li>
<li>Enable <code>X-Content-Type-Options: nosniff</code> and set a default Content Security Policy (CSP) to mitigate XSS attacks by setting the appropriate environment variables.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>xss</category><category>stored-xss</category><category>oauth</category><category>open-webui</category></item><item><title>Open WebUI Cross-User File Access Vulnerability (CVE-2026-45402)</title><link>https://feed.craftedsignal.io/briefs/2026-05-open-webui-file-access/</link><pubDate>Thu, 14 May 2026 20:31:27 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-open-webui-file-access/</guid><description>Open WebUI is vulnerable to cross-user file access due to unchecked file_id in Folder Knowledge and Knowledge-Base Attach Endpoints, allowing authenticated users to exfiltrate or overwrite other users' private files given the file UUID (CVE-2026-45402).</description><content:encoded><![CDATA[<p>Open WebUI versions 0.9.4 and earlier are susceptible to a cross-user file access vulnerability. The vulnerability stems from a lack of proper authorization checks when handling user-supplied <code>file_id</code> values in the Folder Knowledge and Knowledge-Base Attach endpoints. An authenticated attacker can exploit this flaw to access and potentially overwrite files belonging to other users by manipulating folder knowledge or attaching malicious files to knowledge bases. The vulnerability was reported on May 14, 2026, and affects systems where Open WebUI is deployed. Exploitation requires knowledge of the victim&rsquo;s file UUID, which, while not directly enumerable, may leak through normal usage patterns, such as chat sources, shared chat citations, URL paths, browser history, and export/share flows.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The attacker authenticates to the Open WebUI application.</li>
<li>The attacker obtains the UUID of a target file belonging to another user through various means, such as shared chats, URL paths, or browser history.</li>
<li>The attacker crafts a POST request to the <code>/api/v1/folders/&lt;attacker_folder_id&gt;/update</code> endpoint (Path 1) or <code>/api/v1/knowledge/&lt;kb_id&gt;/file/add</code> endpoint (Path 2).</li>
<li>In Path 1, the attacker includes a <code>data</code> payload with a <code>files</code> array containing the victim&rsquo;s file UUID, structured as <code>{&quot;data&quot;: {&quot;files&quot;: [{&quot;id&quot;: &quot;&lt;victim_file_id&gt;&quot;, &quot;type&quot;: &quot;file&quot;}]}}</code>.</li>
<li>In Path 2, the attacker provides the victim file UUID as the <code>file_id</code> parameter in the request body: <code>{&quot;file_id&quot;:&quot;$VICTIM_FILE_ID&quot;}</code>.</li>
<li>If exploiting path 2, the attacker creates a new knowledge base using the /api/v1/knowledge/create endpoint.</li>
<li>The server, lacking proper authorization checks on the <code>file_id</code>, attaches the victim&rsquo;s file to the attacker&rsquo;s folder or knowledge base.</li>
<li>The attacker can then access the victim&rsquo;s file content through RAG flows (Path 1) or the <code>/api/v1/files/{id}/content</code> endpoint (Path 2) and, in Path 2, overwrite it using the <code>/api/v1/files/{id}/data/content/update</code> endpoint.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows any authenticated user to read the contents of any other user&rsquo;s private uploaded file, given knowledge of the file UUID. In the case of Path 2 (knowledge-base attach), the attacker can also overwrite the victim&rsquo;s file content, leading to data tampering and potential misinformation. This can lead to unauthorized data access, data breaches, and integrity compromises. There is no direct availability impact, as the file rows are not deleted.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the recommended fix by validating the supplied file_id against the caller&rsquo;s read access before attaching the file in every writer function (backend/open_webui/routers/folders.py, backend/open_webui/routers/knowledge.py).</li>
<li>Deploy the Sigma rule <code>Detect Open WebUI Knowledge Base File Add</code> to detect exploitation attempts targeting the Knowledge-Base Attach endpoint (Path 2).</li>
<li>Deploy the Sigma rule <code>Detect Open WebUI Folder Update with File Injection</code> to detect exploitation attempts targeting the Folder Knowledge ingestion path (Path 1).</li>
<li>Upgrade to a patched version of Open WebUI that addresses CVE-2026-45402.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>open-webui</category><category>file-access</category><category>privilege-escalation</category><category>cve-2026-45402</category></item></channel></rss>