CVE-2026-70481: Open WebUI: Any member with write access to a standard channel can edit or delete other members' messages
In Open WebUI 0.5.0 through 0.10.2, any member with write access to a standard channel can rewrite or permanently delete other members' messages, because the handlers checked channel write access instead of authorship. Channels are off by default. Upgrade to 0.11.0.
Published Aug 4, 2026 · Analysis Oct 25, 2026
What an attacker can do
Two handlers in backend/open_webui/routers/channels.py are at fault: update_message_by_id (POST /api/v1/channels/{id}/messages/{message_id}/update) and delete_message_by_id (DELETE .../delete). For group and direct message channels, they asked whether the caller wrote the message. For standard channels, they asked only whether the caller may write in the channel. Posting needs the same grant, so every ordinary participant passed. The model layer looks up messages by primary key alone, so the router check was the only authorization.
The attacker is a plain user account with write access, granted publicly, per user or through a group. No channel ownership or manager role is needed. Channel and message ids come from the listing endpoints the member can already call.
They can replace the text of a colleague's message while it stays attributed to the original author, attach arbitrary data and meta payloads, or delete messages, up to the channel's whole visible history. That means forged content under someone else's name and destroyed records. It does not disclose anything beyond what a member could already read, and it does not reach other channels.
Who is affected
Open WebUI >= 0.5.0, <= 0.10.2 when an administrator has enabled channels (ENABLE_CHANNELS, off by default) and the channel is a standard channel. Group and direct message channels are not affected. Check the version:
pip show open-webuiopen-webui
- Ecosystem
- PyPI
- Affected
- >= 0.5.0, <= 0.10.2
- Fixed in
- 0.11.0
- Check
pip show open-webui
How to fix it
Upgrade to 0.11.0:
pip install --upgrade open-webui==0.11.0Commit c609ec411 (PR 27197) applies the authorship check that group and direct message channels already used, so a non-admin can act only on their own messages. No configuration change is needed. If you cannot upgrade yet, leaving ENABLE_CHANNELS off removes the exposure, since the sources say channels are disabled by default and required for the attack.
How to tell if you were hit
Compare channel history with what members say they posted. Look in access logs for POST /api/v1/channels/{id}/messages/{message_id}/update and DELETE calls where the caller is not the message author. Messages with unexpected data or meta fields, or gaps in channel history, are signs of abuse. Database backups let you recover deleted messages.
Original advisory
From the GitHub Advisory Database (CC BY 4.0).
Summary
On standard channels, the message update and delete handlers accepted any caller holding write access on the channel, without checking that the caller wrote the message. Write access is the same grant a member needs in order to post, so every ordinary participant in a shared channel could rewrite or permanently delete any other participant's messages. The group and direct message branch of the same handlers enforced authorship; the standard branch did not.
Preconditions
Channels are disabled by default and must be enabled by an administrator (ENABLE_CHANNELS). The channel must be a standard channel; group and direct message channels are not affected. The attacker is any authenticated account with role user that holds write access on the channel, whether granted publicly, per user, or through a group. No ownership of the channel, channel manager role, or elevated role is required. Channel and message ids are returned by the listing endpoints the member can already call.
Impact
An ordinary member could replace the content of another member's message while the message stayed attributed to its original author, and could attach arbitrary data and meta payloads to it through the same form. The member could also permanently delete other members' messages, up to the entire visible history of the channel. This is an integrity and availability loss against other users of the channel: content can be forged under a colleague's name and records can be destroyed. It reaches no further than channels the attacker already has write access to, and it discloses nothing the attacker could not already read as a member. Pinning is unaffected and is not part of this issue.
Fix
Fixed in c609ec411 (#27197), released in 0.11.0. Both handlers now apply the same authorship check the group and direct message branch already used, so a non-admin caller can act only on their own messages regardless of write access. Upgrading fully resolves it, with no configuration change required.
Root cause
Affected components:
backend/open_webui/routers/channels.py,update_message_by_id(POST /api/v1/channels/{id}/messages/{message_id}/update)backend/open_webui/routers/channels.py,delete_message_by_id(DELETE /api/v1/channels/{id}/messages/{message_id}/delete)
Both handlers branch on channel type, and the two branches asked different questions. The group and direct message branch asked whether the caller wrote the message. The standard branch asked whether the caller is allowed to write in the channel, which is a permission level, not an identity. Those are not interchangeable: posting a message runs that same write check, so the grant that lets a member participate was silently accepted as the grant to rewrite and remove everyone else's content, and every ordinary participant satisfied it. The model layer looks messages up by primary key alone, so the router branch was the only authorization that ran.
Proof of concept
Reported with a script that runs end to end against a live instance. An administrator seeds the accounts and a standard channel granting read and write; everything after that is performed by a separate plain user account in no group that owns neither the channel nor any of the messages. That account edits a victim's message, attaches structured payloads to it, and deletes a second victim message, all returning 200, with the channel history dumped before and after. Controls in the same run confirm the scoping: a read-only member is refused with 403, and a cross-member edit on a group channel is refused with 403.
Credits
@Foxer131 — reported the missing authorship check on the standard-channel update and delete handlers.
Credited to Foxer131, Classic298.
Questions
- Are direct message and group channels affected by CVE-2026-70481?
No. Those branches already enforced authorship. In the proof of concept, a cross-member edit on a group channel was refused with 403.
- Does the attacker need to be a channel owner or admin?
No. Any authenticated
userwith write access to the standard channel is enough, however the access was granted. Read-only members are refused with 403.- Does this expose private messages?
No. It discloses nothing a member could not already read. The impact is forged or deleted messages in channels the attacker can already post to.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. The analysis is written by an AI model from the sources listed above and checked by automated rules before it is published. Check versions against the vendor's advisory before you act. Methodology
More Open WebUI vulnerabilities
All Open WebUI entriesCVE-2026-87011
Open WebUI: Unauthenticated requests can stall the server via uncached OIDC fetches in back-channel logout
high7.5Sep 10, 2026CVE-2026-87012
Open WebUI: Any authenticated user can suppress calendar alerts instance-wide via a non-numeric alert value
medium4.3Sep 10, 2026CVE-2026-87013
Open WebUI: Any authenticated user can start a non-terminating request via a folder parent cycle
medium4.3Sep 10, 2026CVE-2026-87014
Open WebUI: Admin demoted through SSO role sync keeps read and write access to all users' notes
medium6.5Sep 10, 2026CVE-2026-87015
Open WebUI: A user's session cookies are sent to tool servers configured for bearer authentication
medium6.8Sep 10, 2026CVE-2026-87016
Open WebUI: Sign-in as another user via wildcard characters in the OAuth subject claim on SQLite
high8.1Sep 10, 2026
