<?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 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/vendors/open-webui/</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>Fri, 08 May 2026 19:45:53 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/vendors/open-webui/feed.xml" rel="self" type="application/rss+xml"/><item><title>Open WebUI /responses Endpoint Authentication Bypass Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-open-webui-auth-bypass/</link><pubDate>Fri, 08 May 2026 19:45:53 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-open-webui-auth-bypass/</guid><description>The /responses endpoint in Open WebUI's OpenAI router lacks access control, allowing authenticated users to bypass per-model access controls and interact with any configured model, potentially leading to denial of service, model theft, and access policy bypass.</description><content:encoded><![CDATA[<p>Open WebUI versions 0.8.12 and earlier contain an authentication bypass vulnerability in the /responses endpoint of the OpenAI router. This endpoint, intended as a proxy to upstream LLM providers, fails to enforce per-model access controls. While the primary chat completion endpoint (generate_chat_completion) correctly validates model ownership, group membership, and AccessGrants, the /responses endpoint only verifies a valid user session. Consequently, any authenticated user can interact with any model configured on the Open WebUI instance, regardless of their assigned roles or group memberships, by sending a crafted POST request to /api/openai/responses with an arbitrary model ID. This circumvents intended access restrictions and poses risks to service availability, model security, and policy enforcement.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker obtains valid user credentials for the Open WebUI instance. This could be through credential stuffing, phishing, or other common methods.</li>
<li>The attacker authenticates to the Open WebUI instance using the obtained credentials.</li>
<li>The attacker crafts a POST request to the <code>/api/openai/responses</code> endpoint.</li>
<li>The attacker includes an arbitrary model ID in the POST request body, specifying a model they do not have explicit access to under normal access control policies.</li>
<li>The Open WebUI instance, upon receiving the request at <code>/api/openai/responses</code>, only verifies the user&rsquo;s session.</li>
<li>Due to the missing access control checks, the request is forwarded to the upstream LLM provider, effectively bypassing the intended access restrictions.</li>
<li>The upstream LLM provider processes the request using the specified model, even though the user lacks authorization.</li>
<li>The attacker receives the response from the LLM, successfully interacting with a restricted model.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability can have significant consequences. Unauthorized users can submit resource-intensive requests to expensive models, leading to Model Denial of Service (OWASP LLM04) by exhausting API budgets or rate limits, potentially causing total service disruption for legitimate users. Furthermore, if the instance proxies access to fine-tuned or self-hosted models, unauthorized interaction can lead to Model Theft (OWASP LLM10), enabling capability extraction or model distillation. Finally, the vulnerability undermines existing access control systems, preventing administrators from enforcing cost-tier restrictions, team-based model assignments, or compliance boundaries.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to Open WebUI version 0.8.13 or later to patch CVE-2026-44556 and address the authentication bypass vulnerability.</li>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI Unauthorized Model Access via Responses Endpoint&rdquo; to identify potential exploitation attempts by monitoring POST requests to <code>/api/openai/responses</code> with potentially malicious model IDs.</li>
<li>Review Open WebUI access logs for any suspicious activity related to the <code>/api/openai/responses</code> endpoint, particularly requests from users who should not have access to specific models.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>authentication-bypass</category><category>llm</category><category>owasp</category></item><item><title>Open WebUI Arbitrary File Upload and Path Traversal Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-07-open-webui-upload-traversal/</link><pubDate>Wed, 03 Jul 2024 18:30:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-07-open-webui-upload-traversal/</guid><description>Open WebUI version 0.1.105 is vulnerable to arbitrary file upload and path traversal, allowing attackers to upload files to arbitrary locations on the web server's filesystem by exploiting a lack of filename validation.</description><content:encoded><![CDATA[<p>Open WebUI version 0.1.105, formerly known as Ollama WebUI, is susceptible to an arbitrary file upload and path traversal vulnerability. Discovered by Jaggar Henry &amp; Sean Segreti of KoreLogic, Inc. in March 2024, this flaw allows an attacker to upload files to arbitrary locations on the web server&rsquo;s filesystem. The vulnerability stems from the application&rsquo;s failure to properly validate or sanitize filenames during file uploads to the <code>/rag/api/v1/doc</code> endpoint. By exploiting this, malicious actors can use dot-segments (e.g., <code>../../</code>) in the file path to traverse out of the intended uploads directory. Successful exploitation enables the uploading of malicious models, such as pickled Python objects, or the modification of system files like <code>authorized_keys</code> for SSH access.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker authenticates to the Open WebUI web interface.</li>
<li>The attacker crafts an HTTP POST request to the <code>/rag/api/v1/doc</code> endpoint, initiating a file upload.</li>
<li>The attacker includes a malicious filename in the multipart form data, containing path traversal sequences (e.g., <code>../../../../../../../../../../tmp/pwned.txt</code>).</li>
<li>The Open WebUI server receives the request and extracts the unsanitized filename from the HTTP POST request.</li>
<li>The server constructs a file path using the provided filename and the static <code>UPLOAD_DIR</code> variable.</li>
<li>The server proceeds to write the contents of the uploaded file to the constructed file path, effectively bypassing intended directory restrictions.</li>
<li>A malicious actor can overwrite existing system files, such as <code>.ssh/authorized_keys</code> for unauthorized system access.</li>
<li>Alternatively, an attacker uploads a malicious model as a pickled python object to achieve remote code execution.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability, identified as CVE-2026-44566, can lead to arbitrary code execution on the server. An attacker could gain unauthorized access to the system, potentially leading to data breaches, system compromise, or denial of service. The vulnerable version, 0.1.105, is actively exploitable, and organizations using this version are at risk. The targeted platform observed during analysis was Debian GNU/Linux 12.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade Open WebUI to a version beyond 0.1.123 which addresses the CVE-2026-44566 vulnerability.</li>
<li>Implement input validation and sanitization on the server-side to prevent path traversal attacks during file uploads to mitigate the arbitrary file upload.</li>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI Path Traversal File Upload&rdquo; to identify exploitation attempts in web server logs.</li>
<li>Monitor web server logs for HTTP POST requests to the <code>/rag/api/v1/doc</code> endpoint with filenames containing path traversal sequences.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>path-traversal</category><category>file-upload</category><category>web-application</category></item><item><title>Open WebUI Improper Authorization Control Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-07-open-webui-auth-bypass/</link><pubDate>Wed, 03 Jul 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-07-open-webui-auth-bypass/</guid><description>Open WebUI version 0.1.105 is vulnerable to an improper authorization control issue, where user accounts with a `pending` status can bypass authorization checks and make authenticated API calls as a `user` context due to the application failing to properly validate the user's role beyond JWT validation.</description><content:encoded><![CDATA[<p>Open WebUI, formerly Ollama WebUI, version 0.1.105, suffers from an improper authorization control vulnerability. This flaw allows users with a &lsquo;pending&rsquo; status to bypass intended restrictions and make authenticated API calls as if they were authorized &lsquo;user&rsquo; roles. The vulnerability arises because the application&rsquo;s API endpoints do not adequately validate the user&rsquo;s role, relying solely on the presence of a valid JWT for authentication, while neglecting to verify the user&rsquo;s assigned role. The vulnerability was discovered by Taylor Pennington of KoreLogic, Inc. This issue allows unapproved users to access sensitive data and functionality.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker registers a new user account on the Open WebUI platform with <code>new sign-ups</code> enabled. The new account is automatically assigned a <code>pending</code> status.</li>
<li>The application generates a JWT for the new user, despite their <code>pending</code> status, and returns it to the attacker.</li>
<li>The attacker crafts an HTTP GET request to the <code>/ollama/api/tags</code> endpoint, including the JWT in the <code>Authorization</code> header.</li>
<li>The Open WebUI server receives the request and validates the JWT using the <code>get_current_user</code> function.</li>
<li>The <code>get_current_user</code> function only checks the validity of the JWT but does not verify the user&rsquo;s role, thus allowing the request to proceed.</li>
<li>The server retrieves a list of available models without properly validating the user&rsquo;s authorization.</li>
<li>The server returns the list of available models in the HTTP response to the attacker.</li>
<li>The attacker can now access other regular user accessible endpoints.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows unauthorized users to access sensitive information such as available models and potentially other resources intended only for authorized users. This could lead to information disclosure, unauthorized use of resources, and further compromise of the system. This issue affects Open WebUI installations that have enabled new user sign-ups without properly verifying user roles, potentially impacting all users on the platform.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI API Access by Pending User&rdquo; to your SIEM to identify unauthorized API access attempts from users with a <code>pending</code> role based on HTTP request headers and response codes.</li>
<li>Apply the patch recommended by Open WebUI to utilize the <code>get_verified_user()</code> function instead of <code>get_current_user()</code> in all authenticated endpoints to enforce proper authorization checks as described in the Mitigation Recommendation section.</li>
<li>Monitor user registration requests to <code>/api/v1/auths/signup</code> using the &ldquo;Detect Open WebUI User Registration&rdquo; Sigma rule to track account creation attempts and potential abuse.</li>
<li>Investigate and revoke any JWTs associated with <code>pending</code> user accounts to prevent unauthorized access using the email IOC.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>authorization</category><category>web-application</category><category>vulnerability</category></item><item><title>Open WebUI Stale Admin Role Enables Post-Demotion Cross-User Note Access</title><link>https://feed.craftedsignal.io/briefs/2024-01-25-open-webui-privesc/</link><pubDate>Thu, 25 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-25-open-webui-privesc/</guid><description>Open WebUI is vulnerable to privilege escalation; when a user connects via Socket.IO, their role is stored in an in-memory session pool, and administrative changes do not invalidate this session, allowing unauthorized access and modification of other users' notes after role revocation.</description><content:encoded><![CDATA[<p>Open WebUI, a web interface for large language models, is susceptible to a privilege escalation vulnerability stemming from how it manages user sessions via Socket.IO. Specifically, when a user establishes a connection, their role (e.g., &lsquo;admin&rsquo;) is cached in an in-memory <code>SESSION_POOL</code>. Crucially, subsequent administrative actions like role revocation or user deletion, performed through HTTP endpoints, do not invalidate existing Socket.IO sessions. As a result, a user who has been demoted or deleted can retain their previous admin privileges within the active Socket.IO session indefinitely, so long as they maintain the connection via heartbeats. This vulnerability impacts current main branch (commit <code>6fdd19bf1</code>) and likely all versions with the collaborative document (Yjs) Socket.IO handlers.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>User B authenticates as an administrator and establishes a Socket.IO connection, which stores their <code>role</code> as <code>admin</code> in the <code>SESSION_POOL</code>.</li>
<li>Administrator A demotes User B to a regular user via the <code>POST /api/v1/users/{B_id}/update</code> endpoint, modifying the user&rsquo;s role in the database.</li>
<li>The Socket.IO session remains active, and User B&rsquo;s <code>SESSION_POOL</code> entry retains the stale <code>admin</code> role.</li>
<li>User B&rsquo;s client continues sending <code>heartbeat</code> events to maintain the Socket.IO connection, refreshing only the <code>last_seen_at</code> timestamp in the <code>SESSION_POOL</code>.</li>
<li>User B sends a <code>ydoc:document:join</code> event with the <code>document_id</code> of a note belonging to another user (e.g., <code>note:&lt;victim_note_id&gt;</code>).</li>
<li>The server-side handler at <code>socket/main.py:538</code> checks the cached role from the <code>SESSION_POOL</code>, incorrectly granting access due to the stale <code>admin</code> role.</li>
<li>User B now gains read access to the victim&rsquo;s note, receives the full document state, and gets live updates.</li>
<li>User B sends a <code>ydoc:document:update</code> event, and the handler at <code>socket/main.py:611</code> bypasses authorization using the cached role, allowing User B to modify the victim&rsquo;s note&rsquo;s content.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows unauthorized read and write access to any user&rsquo;s notes. This occurs even after admin privileges have been legitimately revoked. The attacker only needs to maintain an active Socket.IO connection established while they had administrative rights, which is trivial as heartbeats keep the session alive indefinitely. This grants a false sense of security to administrators who revoke privileges, as the revocation only affects HTTP access but not real-time collaborative access.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply available patches or upgrade Open WebUI to a version that addresses CVE-2026-44553.</li>
<li>Implement a mechanism to invalidate Socket.IO sessions upon user role changes or deletions to prevent the use of stale privileges. Specifically, invalidate or update <code>SESSION_POOL</code> entries when user roles are modified via the <code>/api/v1/users/{B_id}/update</code> endpoint.</li>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI Note Access Attempt with Stale Admin Session&rdquo; to identify potential attempts to access notes using stale admin sessions.</li>
<li>Review and audit the implementation of the Socket.IO session management, particularly the <code>connect</code> and <code>heartbeat</code> handlers in <code>backend/open_webui/socket/main.py</code>, to ensure proper role validation.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>privilege-escalation</category><category>credential-access</category><category>cloud</category></item><item><title>Open WebUI Model Chaining Access Control Bypass</title><link>https://feed.craftedsignal.io/briefs/2024-01-02-open-webui-model-bypass/</link><pubDate>Tue, 02 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-02-open-webui-model-bypass/</guid><description>Open WebUI is vulnerable to an access control bypass due to improper model chaining, allowing a regular user to create a model that chains to a restricted base model and query it using the admin's API key, bypassing access restrictions.</description><content:encoded><![CDATA[<p>Open WebUI, a web interface for Large Language Models, is susceptible to an access control vulnerability via its model chaining feature. This feature allows users to create custom models that reference existing base models for inference. The vulnerability arises because access controls are only applied to the user-facing model, not the chained base model. An attacker with default model creation permissions can exploit this flaw to create a model that chains to a restricted or premium base model, effectively bypassing intended access restrictions and querying the restricted model using the admin-configured API key. This issue affects the current main branch (commit <code>6fdd19bf1</code>) and likely all versions with the model chaining feature.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Admin provisions a restricted model, such as <code>gpt-4-turbo-restricted</code>, and configures access control policies.</li>
<li>Attacker, without access to the restricted model, crafts a <code>POST</code> request to <code>/api/v1/models/create</code> with a payload defining a new model (e.g., <code>cheap-assistant</code>) and setting its <code>base_model_id</code> to the restricted model&rsquo;s ID.</li>
<li>The <code>create</code> endpoint lacks validation to ensure the attacker has access to the specified <code>base_model_id</code>.</li>
<li>The attacker now owns the <code>cheap-assistant</code> model, which will pass the initial <code>check_model_access</code> check.</li>
<li>The attacker sends a <code>POST</code> request to <code>/api/chat/completions</code>, specifying the newly created <code>cheap-assistant</code> model.</li>
<li>The application resolves the <code>base_model_id</code> of <code>cheap-assistant</code> to <code>gpt-4-turbo-restricted</code> within <code>main.py:1696</code>.</li>
<li>The application rewrites the <code>payload[&quot;model&quot;]</code> to the base model ID, and dispatches the upstream request using the admin-configured API key.</li>
<li>The attacker receives responses from the restricted model, successfully circumventing the intended access restrictions.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability allows unauthorized access to restricted models, potentially leading to increased costs on pay-per-token backends such as OpenAI or Azure, as the admin&rsquo;s API key is used for unauthorized requests. It also creates a false sense of security, as access restrictions appear to work through the standard model selector but are ineffective against user-created chains. The vulnerability can lead to direct cost impact on pay-per-token backends and erode trust in the configured access controls.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule <code>Detect Open WebUI Model Creation with External BaseModelID</code> to detect attempts to create models with <code>base_model_id</code> pointing to existing models, and tune the false positives for your environment.</li>
<li>Deploy the Sigma rule <code>Detect Open WebUI Chat Completion Request Using Custom Model with BaseModelID</code> to detect chat completion requests using a custom model with a <code>base_model_id</code> set.</li>
<li>Upgrade to a patched version of Open WebUI that includes proper access control validation for <code>base_model_id</code> during model creation to remediate CVE-2026-44555.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>access-control</category><category>model-chaining</category><category>open-webui</category><category>privilege-escalation</category></item></channel></rss>