CVE-2026-54019: open-webui: RAG ACL bypass exposes private KB chunks
GHSA-p5cp-r7rg-qpxc MEDIUM CISA: TRACK*Open WebUI versions ≤0.9.5 with Milvus multitenancy mode enabled contain a query injection flaw that allows any authenticated low-privilege user to read private knowledge-base chunks belonging to other users without any victim interaction. This is a patch bypass of CVE-2026-44560: the ACL fix permits unknown collection names as legacy collections, and when Milvus multitenancy is active, those user-controlled names are interpolated verbatim into Milvus filter expressions—a tautological injection that returns the entire indexed corpus. Although the absolute EPSS is low (0.0003), its top-91% percentile ranking signals strong exploitation interest, and the public PoC is a single crafted HTTP request requiring no special tooling. Any multi-tenant Open WebUI deployment—SaaS platforms, enterprise shared instances, or team deployments—should upgrade to open-webui 0.9.6 immediately or disable ENABLE_MILVUS_MULTITENANCY_MODE as an interim control.
What is the risk?
CVSS 6.5 (Medium) materially understates operational risk for multi-tenant deployments. The attack requires only a valid low-privilege account, no user interaction, and delivers a full confidentiality breach of all private RAG content across all tenants on the instance. In shared enterprise or SaaS Open WebUI deployments, the blast radius is the entire indexed knowledge base—proprietary documents, internal policies, customer data—for every user. The EPSS top-91% percentile and trivial PoC (single HTTP request) indicate this will be exploited rapidly after disclosure. It is a second-order patch bypass, meaning defenders who patched CVE-2026-44560 may believe they are protected when they are not.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Open WebUI | pip | <= 0.9.5 | 0.9.6 |
Do you use Open WebUI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
5 steps-
Patch: Upgrade open-webui to ≥0.9.6 immediately—this release addresses both the ACL logic gap and the unsanitized Milvus expression interpolation.
-
Interim workaround (if patching is blocked): set ENABLE_MILVUS_MULTITENANCY_MODE=false to disable the vulnerable code path, accepting reduced tenant isolation at the Milvus layer.
-
Input validation at API boundary: reject collection names containing single quotes, logical operators, or special characters (minimum regex: /['"|&]/) in POST /api/v1/retrieval/query/collection and /query/doc before the ACL check.
-
Detection: search application and API gateway logs for collection_names values containing quote characters, 'resource_id', '!=', or 'or' in retrieval query requests.
-
Exposure assessment: audit all Open WebUI instances for Milvus multitenancy configuration and enumerate who holds authenticated access.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-54019?
Open WebUI versions ≤0.9.5 with Milvus multitenancy mode enabled contain a query injection flaw that allows any authenticated low-privilege user to read private knowledge-base chunks belonging to other users without any victim interaction. This is a patch bypass of CVE-2026-44560: the ACL fix permits unknown collection names as legacy collections, and when Milvus multitenancy is active, those user-controlled names are interpolated verbatim into Milvus filter expressions—a tautological injection that returns the entire indexed corpus. Although the absolute EPSS is low (0.0003), its top-91% percentile ranking signals strong exploitation interest, and the public PoC is a single crafted HTTP request requiring no special tooling. Any multi-tenant Open WebUI deployment—SaaS platforms, enterprise shared instances, or team deployments—should upgrade to open-webui 0.9.6 immediately or disable ENABLE_MILVUS_MULTITENANCY_MODE as an interim control.
Is CVE-2026-54019 actively exploited?
No confirmed active exploitation of CVE-2026-54019 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-54019?
1. Patch: Upgrade open-webui to ≥0.9.6 immediately—this release addresses both the ACL logic gap and the unsanitized Milvus expression interpolation. 2. Interim workaround (if patching is blocked): set ENABLE_MILVUS_MULTITENANCY_MODE=false to disable the vulnerable code path, accepting reduced tenant isolation at the Milvus layer. 3. Input validation at API boundary: reject collection names containing single quotes, logical operators, or special characters (minimum regex: /['"|&]/) in POST /api/v1/retrieval/query/collection and /query/doc before the ACL check. 4. Detection: search application and API gateway logs for collection_names values containing quote characters, 'resource_id', '!=', or 'or' in retrieval query requests. 5. Exposure assessment: audit all Open WebUI instances for Milvus multitenancy configuration and enumerate who holds authenticated access.
What systems are affected by CVE-2026-54019?
This vulnerability affects the following AI/ML architecture patterns: RAG pipelines, multi-tenant AI platforms, vector databases, knowledge base systems, LLM chat interfaces with document ingestion.
What is the CVSS score for CVE-2026-54019?
CVE-2026-54019 has a CVSS v3.1 base score of 6.5 (MEDIUM). The EPSS exploitation probability is 0.34%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0040 AI Model Inference API Access AML.T0049 Exploit Public-Facing Application AML.T0064 Gather RAG-Indexed Targets AML.T0085.000 RAG Databases Compliance Controls Affected
What are the technical details?
Original Advisory
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.6, Open WebUI added collection-level ACL checks, but the patch can still be bypassed when Milvus multitenancy mode is enabled. The ACL allows unknown non-KB collection names as legacy/ephemeral collections. In Milvus multitenancy mode, that user-controlled collection name becomes a resource_id and is interpolated into a Milvus expression without escaping. This is caused by an incomplete fix for CVE-2026-44560 This vulnerability is fixed in 0.9.6.
Exploitation Scenario
An attacker with any valid Open WebUI account (contractor, trial user, or compromised credential) sends a single POST request to /api/v1/retrieval/query/collection with collection_names set to ["x' or resource_id != '' or resource_id == 'x"]. The Open WebUI ACL evaluates the name, finds no matching knowledge base, and permits it as a legacy ephemeral collection. The string is then interpolated into the Milvus filter expression without escaping, creating the tautology 'resource_id == x' or resource_id != '' or resource_id == x'—which matches all indexed chunks across all tenants. The attacker iterates queries with varied search terms to systematically extract the full RAG corpus, including documents from knowledge bases owned by administrators, other teams, and all other users on the instance.
Weaknesses (CWE)
CWE-862 Missing Authorization
Primary
CWE-862 Missing Authorization
Primary
CWE-943 Improper Neutralization of Special Elements in Data Query Logic
Primary
CWE-943 Improper Neutralization of Special Elements in Data Query Logic
Primary
CWE-862 Missing Authorization CWE-943 Improper Neutralization of Special Elements in Data Query Logic CWE-862 — Missing Authorization: The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
- [Architecture and Design] Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) [REF-229] to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
- [Architecture and Design] Ensure that access control checks are performed related to the business logic. These checks may be different than the access control checks that are applied to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor [REF-7].
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N References
Timeline
Related Vulnerabilities
CVE-2026-44551 9.1 open-webui: LDAP auth bypass — full account takeover
Same package: open-webui CVE-2026-45672 8.8 open-webui: code exec gate bypass via API endpoint
Same package: open-webui CVE-2026-44552 8.7 open-webui: Redis cache poisoning enables cross-instance tool hijack
Same package: open-webui CVE-2025-64495 8.7 Open WebUI: XSS-to-RCE via malicious prompt injection
Same package: open-webui CVE-2026-45315 8.7 open-webui: stored XSS → JWT theft and admin takeover
Same package: open-webui