CVE-2026-44559: open-webui: private channel member list exposed to any user
GHSA-c7wp-3qh5-55pv MEDIUM CISA: TRACK*Open-webui's channel members API endpoint omits authorization checks for standard channel types, allowing any authenticated user to enumerate the full membership of private channels — including names, email addresses, roles, and profile images — by issuing a single API request with a known channel UUID. While the channels feature is disabled by default and EPSS data is not yet available for this freshly published CVE, the attack requires only a valid account and trivial effort once a UUID is obtained, making it a realistic insider or privilege-abuse vector in any organization where the feature is enabled. Open-webui has accumulated 52 CVEs in the same package, signaling systemic access-control debt that warrants scrutiny of the platform's overall security posture beyond this specific flaw. Organizations using open-webui should upgrade immediately to version 0.9.0 and audit API access logs for unexpected requests to `/api/v1/channels/{id}/members` from non-member accounts.
What is the risk?
Medium risk overall, consistent with the CVSS 4.3 score. Confidentiality impact is bounded — member identity metadata is exposed rather than message content or model data — and the channels feature must be explicitly enabled. However, exploitability is effectively trivial: a single authenticated API call with no special conditions required. The primary threat model is insider enumeration or privilege abuse in enterprise open-webui deployments where private channels organize sensitive AI project teams. The accumulation of 52 CVEs in this package is a systemic risk indicator that should factor into broader platform risk acceptance decisions beyond this individual vulnerability.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Open WebUI | pip | <= 0.8.12 | 0.9.0 |
Do you use Open WebUI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
5 steps-
Upgrade open-webui to version 0.9.0, which patches the missing authorization check in the channel members endpoint.
-
If immediate upgrade is not possible, disable the channels feature — it is disabled by default and toggling it off eliminates the exposed attack surface entirely.
-
Review API access logs for historical GET requests to
/api/v1/channels/{id}/membersthat originated from users who are not channel members; these would indicate exploitation attempts or successful enumeration. -
Audit current channel configurations and assess whether sensitive organizational membership data was exposed to non-member authenticated users during the vulnerable window.
-
Consider network-level controls restricting open-webui API access to trusted internal networks for deployments that cannot be patched immediately.
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-44559?
Open-webui's channel members API endpoint omits authorization checks for standard channel types, allowing any authenticated user to enumerate the full membership of private channels — including names, email addresses, roles, and profile images — by issuing a single API request with a known channel UUID. While the channels feature is disabled by default and EPSS data is not yet available for this freshly published CVE, the attack requires only a valid account and trivial effort once a UUID is obtained, making it a realistic insider or privilege-abuse vector in any organization where the feature is enabled. Open-webui has accumulated 52 CVEs in the same package, signaling systemic access-control debt that warrants scrutiny of the platform's overall security posture beyond this specific flaw. Organizations using open-webui should upgrade immediately to version 0.9.0 and audit API access logs for unexpected requests to `/api/v1/channels/{id}/members` from non-member accounts.
Is CVE-2026-44559 actively exploited?
No confirmed active exploitation of CVE-2026-44559 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-44559?
1. Upgrade open-webui to version 0.9.0, which patches the missing authorization check in the channel members endpoint. 2. If immediate upgrade is not possible, disable the channels feature — it is disabled by default and toggling it off eliminates the exposed attack surface entirely. 3. Review API access logs for historical GET requests to `/api/v1/channels/{id}/members` that originated from users who are not channel members; these would indicate exploitation attempts or successful enumeration. 4. Audit current channel configurations and assess whether sensitive organizational membership data was exposed to non-member authenticated users during the vulnerable window. 5. Consider network-level controls restricting open-webui API access to trusted internal networks for deployments that cannot be patched immediately.
What systems are affected by CVE-2026-44559?
This vulnerability affects the following AI/ML architecture patterns: collaborative AI platforms, enterprise LLM chat interfaces, team-based AI assistant deployments.
What is the CVSS score for CVE-2026-44559?
CVE-2026-44559 has a CVSS v3.1 base score of 4.3 (MEDIUM). The EPSS exploitation probability is 0.22%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0006 Active Scanning AML.T0012 Valid Accounts AML.T0049 Exploit Public-Facing Application AML.T0087 Gather Victim Identity Information Compliance Controls Affected
What are the technical details?
Original Advisory
# Missing Access Check on Channel Members Endpoint for Standard Channels ## Affected Component Channel members listing endpoint: - `backend/open_webui/routers/channels.py` (lines 445-507, `get_channel_members_by_id`) ## Affected Versions Current main branch and likely all versions with the channels feature. ## Description The `GET /api/v1/channels/{id}/members` endpoint only checks membership for `group` and `dm` channel types (lines 467-469). For standard channels — including private ones — there is no `channel_has_access` check before returning the member list. Any authenticated user who knows a private channel's UUID can enumerate all users with access to that channel. ```python # Line 467-469: only group/dm channels are checked if channel.type in ['group', 'dm']: if not Channels.is_user_channel_member(channel.id, user.id, db=db): raise HTTPException(...) # Standard channels fall through with NO access check ``` Compare with other channel endpoints (e.g., `get_channel_messages` at line 688) which correctly call `channel_has_access(user.id, channel, permission='read')` for standard channels. ## CVSS 3.1 Breakdown | Metric | Value | Rationale | |--------|-------|-----------| | Attack Vector | Network (N) | Exploited remotely via API call | | Attack Complexity | Low (L) | Single API call, no special conditions | | Privileges Required | Low (L) | Requires a valid user account | | User Interaction | None (N) | No victim interaction required | | Scope | Unchanged (U) | Impact is within the channel authorization boundary | | Confidentiality | Low (L) | Leaks user identities and details for a private channel | | Integrity | None (N) | No data modification | | Availability | None (N) | No denial of service | ## Attack Scenario 1. Attacker obtains a private standard channel's UUID (via logs, browser history, URL observation, or other API responses). 2. Attacker calls `GET /api/v1/channels/{id}/members`. 3. The server returns the full list of permitted users including their IDs, names, emails, roles, and profile images. 4. The attacker has no access to the channel's messages (those endpoints check access correctly), but now knows exactly who does. ## Impact - Leaks the identity and personal details of every user with access to a private channel - Reveals organizational structure and project assignments - Enables targeted social engineering against channel members ## Preconditions - Channels feature must be enabled (disabled by default) - Attacker must know the channel UUID (not guessable, but obtainable through indirect means)
Exploitation Scenario
An attacker with a standard authenticated account on an enterprise open-webui deployment — such as a new employee, contractor, or holder of a compromised low-privilege account — observes a private channel UUID through legitimate UI interactions: a channel invitation link, network traffic visible in browser developer tools, or an API response surfaced during normal usage. Without any channel membership, the attacker issues a direct API call to GET /api/v1/channels/{target-channel-id}/members. The server returns the complete membership roster — user IDs, display names, email addresses, roles, and profile image URLs — for every authorized member of the private channel. The attacker now knows exactly which users have access to sensitive AI projects or internal security discussions and can select high-value targets for spearphishing, credential harvesting, or further access escalation within the broader AI platform.
Weaknesses (CWE)
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:L/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