<?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/tags/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:38:31 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/open-webui/feed.xml" rel="self" type="application/rss+xml"/><item><title>Open WebUI LDAP Empty Password Authentication Bypass</title><link>https://feed.craftedsignal.io/briefs/2024-01-24-open-webui-ldap-bypass/</link><pubDate>Fri, 08 May 2026 19:38:31 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-24-open-webui-ldap-bypass/</guid><description>Open WebUI is vulnerable to an LDAP authentication bypass where the LDAP authentication endpoint does not validate that the submitted password is non-empty before performing a Simple Bind against the LDAP server, potentially granting attackers complete account access.</description><content:encoded><![CDATA[<p>Open WebUI is vulnerable to an LDAP authentication bypass. The LDAP authentication endpoint does not validate that the submitted password is non-empty before performing a Simple Bind against the LDAP server. This vulnerability exists because the <code>LdapForm</code> Pydantic model accepts an empty string for the password field without any minimum length constraint. Subsequently, the <code>Connection.bind()</code> call succeeds on vulnerable LDAP servers, and the application issues a full session token for the target user. The issue affects the current main branch (commit <code>6fdd19bf1</code>) and likely all versions with LDAP authentication support. Exploitation requires that LDAP is enabled and the underlying LDAP server accepts unauthenticated simple binds with empty passwords, which is the default configuration for OpenLDAP and some Active Directory setups.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>LDAP authentication is enabled on the Open WebUI instance (<code>ENABLE_LDAP=True</code>).</li>
<li>The attacker identifies a valid LDAP username.</li>
<li>The underlying LDAP server accepts unauthenticated simple binds (OpenLDAP default, some AD configs).</li>
<li>Attacker sends a POST request to <code>/api/v1/auths/ldap</code> with the target username and an empty password.</li>
<li>The application&rsquo;s DN bind succeeds, finding the target user via LDAP search.</li>
<li>The application attempts a user bind using the provided (empty) password.</li>
<li>The LDAP server returns success for the unauthenticated bind due to the empty password.</li>
<li><code>authenticate_user_by_email</code> issues a full session token for the target user, granting complete account access.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows a complete authentication bypass, enabling attackers to take over any LDAP user account without knowing the password, including admin accounts if they authenticate via LDAP. The vulnerability can be exploited with zero interaction from the victim and without rate limiting on the LDAP endpoint.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Apply the mitigations recommended in GHSA-2r4p-jpmg-48f4 to prevent empty passwords from being used in LDAP authentication.</li>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI LDAP Authentication Bypass Attempt&rdquo; to monitor for POST requests to the <code>/api/v1/auths/ldap</code> endpoint with an empty password field, indicating a potential exploit attempt.</li>
<li>Ensure the LDAP server is configured to reject unauthenticated simple binds with empty passwords.</li>
<li>Monitor web server logs for POST requests to <code>/api/v1/auths/ldap</code> (webserver log source) and correlate with other authentication-related events.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>authentication-bypass</category><category>ldap</category><category>open-webui</category></item><item><title>Open WebUI Cross-Instance Cache Poisoning Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-05-open-webui-cache-poisoning/</link><pubDate>Thu, 09 May 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-05-open-webui-cache-poisoning/</guid><description>Open WebUI versions up to 0.8.12 are vulnerable to cross-instance cache poisoning when multiple instances share a Redis backend, allowing an attacker with admin access on one instance to overwrite cache values used by other instances, leading to data exfiltration and prompt injection attacks.</description><content:encoded><![CDATA[<p>Open WebUI, a web interface for LLMs, is susceptible to a cross-instance cache poisoning vulnerability (CVE-2026-44552) when multiple instances share a Redis backend. This issue stems from missing <code>REDIS_KEY_PREFIX</code> usage for the <code>tool_servers</code> and <code>terminal_servers</code> keys in <code>utils/tools.py</code>. Specifically, lines 841, 850, 976, and 986 do not utilize the key prefix. As a result, an attacker with admin privileges on one instance can overwrite the cache values used by other instances. This vulnerability affects the current main branch (commit <code>6fdd19bf1</code>) and likely all versions since the tool server/terminal server Redis cache was introduced. This is a critical issue because it undermines the multi-instance isolation that <code>REDIS_KEY_PREFIX</code> aims to provide, potentially impacting blue-green deployments, multi-region setups, and cluster topologies.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains admin access to Open WebUI Instance A, either through legitimate means or by exploiting vulnerabilities like LDAP empty-password or stale-admin-role issues.</li>
<li>The attacker configures a malicious tool server on Instance A, pointing to <code>https://attacker-controlled.example.com/openapi.json</code>. This configuration triggers a write to the <code>tool_servers</code> Redis key without the <code>REDIS_KEY_PREFIX</code> (line 841 in <code>utils/tools.py</code>).</li>
<li>Users on Open WebUI Instance B attempt to query available tools. This action triggers a read from the same unprefixed <code>tool_servers</code> Redis key (line 850 in <code>utils/tools.py</code>).</li>
<li>Instance B retrieves the attacker&rsquo;s poisoned tool server list from Instance A, which now includes the attacker&rsquo;s server, possibly replacing legitimate tool servers.</li>
<li>A user on Instance B invokes a tool. The tool call payload, including chat content, user identity, and OAuth tokens, is sent to the attacker-controlled server.</li>
<li>The attacker&rsquo;s server responds with arbitrary tool outputs, which are then fed back into Instance B&rsquo;s LLM context.</li>
<li>The malicious tool output is treated as trusted data within Instance B&rsquo;s LLM, enabling prompt injection and misinformation delivery.</li>
<li>The attacker leverages prompt injection and misinformation delivery to further compromise Instance B and exfiltrate sensitive data.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability leads to cross-instance cache poisoning, where one instance&rsquo;s admin can affect all users of another instance sharing the same Redis backend. Sensitive data, including chat content and user identity, can be exfiltrated to an attacker-controlled server. Furthermore, the attacker can inject malicious content into the victim instance&rsquo;s LLM context, leading to prompt injection attacks. This undermines the intended isolation between Open WebUI instances and can lead to significant data breaches and system compromise. The vulnerability&rsquo;s silent failure mode makes detection difficult for victim instances.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI Tool Server Configuration Change&rdquo; to monitor for unauthorized changes to the <code>tool_servers</code> key (rule below).</li>
<li>Deploy the Sigma rule &ldquo;Detect Open WebUI Terminal Server Configuration Change&rdquo; to monitor for unauthorized changes to the <code>terminal_servers</code> key (rule below).</li>
<li>Apply available patches or upgrades to Open WebUI to versions beyond 0.8.12 as soon as they are released to address CVE-2026-44552.</li>
<li>Restrict admin access to Open WebUI instances and enforce strong password policies.</li>
<li>Review and audit existing Open WebUI deployments to ensure proper configuration and security best practices.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>cache-poisoning</category><category>redis</category><category>open-webui</category><category>vulnerability</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>