GitHub Advisoryadvisory · PyPI
GHSA-jgj3-r8hr-9pjw Open WebUI's Improper Authorization in Standard Channels Allows Message Updates with Read Permission
MEDIUM
Official page ↗
- Aliases
- CVE-2026-44571
- Ecosystem
- PyPI
- Packages
- open-webui
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
- Weaknesses
- CWE-862
- Reviewed
- 2026-05-11
Affected packages
• PyPI open-webui: < 0.8.6 → fixed in 0.8.6
Description
Vulnerability Description
In standard channels (i.e., channels whose `channel.type` is neither `group` nor `dm`), the endpoint
`POST /api/v1/channels/{channel_id}/messages/{message_id}/update` can be accessed with read permission only.
When `access_control` is set to `None`, the authorization check `has_access(..., type="read")` evaluates to `True`, allowing users who are not the message owner to update messages.
As a result, unauthorized modification of other users’ messages is possible.
---
Attack Prerequisites
• The attacker is an authenticated user (role `user` or higher)
• The target channel is a standard channel (i.e., not `group` or `dm`)
• `access_control` is `None` or allows `read` access
• The attacker can obtain the target `message_id` (e.g., via the channel’s message list)
Attack Scenario
1. The attacker (User B) retrieves another user’s `message_id` from the message list in a standard channel
2. The attacker sends a request to
`POST /api/v1/channels/{channel_id}/messages/{message_id}/update`
3. The message authored by another user (User A) is successfully updated
Potential Impact
• Unauthorized modification of other users’ messages (violation of data integrity)
Steps to Reproduce
1. Log in as an administrator
2. Create User A
3. Create User B
4. Log in as User A
5. Log in as User B
6. As the administrator, create a new channel
7. As User A, post a new message in the channel
8. As User B, edit User A’s message
9. Confirm that User A’s message has been modified without authorization
Affected Files and Line Numbers
• `backend/open_webui/routers/channels.py:1417–1460`
The authorization check in `update_message_by_id` allows access with read permission
• `backend/open_webui/utils/access_control.py:124–135`
When `access_control=None` and `strict=True`, read access is permitted
• `backend/open_webui/models/messages.py:341–358`
The update logic does not enforce any message ownership check
Recommended Mitigation
Update the condition in
`backend/open_webui/routers/channels.py:1451–1456`
by changing the permission check from `read` to `write`, so that only administrators, message owners, or users with write permission can update messages.
Proposed Changes
• For standard channels, change the update permission requirement from
`has_access(..., type="read")` to `has_access(..., type="write")`
• Preserve the existing ownership check (`message.user_id == user.id`)
AI Usage
• Translation from Japanese to English
• CWE classification and assessment
• Affected Files and Line Numbers
Related
Alias · CVE (1)
- CVE-2026-44571 Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. vulnerability
Weakness · CWE (1)
- CWE-862 Missing Authorization weakness