CVE-2026-70481: Open WebUI: members can edit/delete others' channel messages
GHSA-mj5r-jf49-m3w7 MEDIUM PoC AVAILABLEOpen WebUI shipped two message-handling endpoints on standard (non-DM, non-group) channels that checked whether a caller could post in a channel rather than whether they authored the specific message, so any ordinary member with write access could silently rewrite or permanently delete a colleague's messages while the forged content stayed attributed to the original author. The blast radius is limited to the four packages that formally depend on open-webui and to organizations that have enabled the optional channels feature, and exploitation likelihood is low in absolute terms (EPSS 0.3%, though that still ranks in the top 78th percentile of all scored CVEs) with no CISA KEV listing and a CISA SSVC rating of TRACK, meaning it's not an emergency-patch situation. It matters anyway because open-webui carries a long track record of security findings (150 other CVEs in this package) and because integrity attacks inside shared AI chat channels — forging what a teammate appeared to say, or wiping the record — are hard to detect after the fact and undermine trust in the platform as a system of record. Patch to open-webui 0.11.0 or later, which requires no configuration change; until then, disable the `ENABLE_CHANNELS` feature flag or restrict standard-channel write grants to trusted users only, and audit channel message edit/delete activity for entries where the acting user differs from the original author.
What is the risk?
Medium severity (CVSS 5.4, AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L) reflects a low-privilege, network-exploitable integrity and availability issue with no confidentiality impact — the attacker discloses nothing they couldn't already read as a channel member. Exploitability is trivial: it requires only an authenticated low-privilege account with ordinary write access to a standard channel (a grant most participants already hold) and message IDs obtainable from listing endpoints the member can already call, with a working PoC published in the advisory. Counterbalancing the low CVSS and low EPSS (0.3%, TRACK SSVC decision, not in CISA KEV) is that this is an insider-facing threat model — the attacker is already a trusted, authenticated org member — which standard perimeter-focused prioritization tends to underweight. Exposure is gated by two preconditions: the `ENABLE_CHANNELS` feature must be administrator-enabled, and the channel must be a standard (not group/DM) channel, which meaningfully narrows real-world affected instances.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Open WebUI | pip | >= 0.5.0, <= 0.10.2 | 0.11.0 |
Do you use Open WebUI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to open-webui 0.11.0 or later, which applies the same authorship check used by group/DM channels to standard channels — no configuration change is required post-upgrade. If immediate patching isn't feasible, mitigate by disabling channels entirely (
ENABLE_CHANNELS=false) if the feature isn't business-critical, or by tightening standard-channel write grants to a minimal trusted set of users/groups rather than broad public write access. For detection, review channel message edit/delete logs (or database audit trails on the messages table) for edit/delete operations where the acting user ID does not match the message's original author ID — any such record predating the patch is evidence of exploitation. Post-patch, validate the fix with the advisory's own control cases: a read-only member attempting edit/delete should get 403, and cross-member edits on group channels should already be refused.
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-70481?
Open WebUI shipped two message-handling endpoints on standard (non-DM, non-group) channels that checked whether a caller could post in a channel rather than whether they authored the specific message, so any ordinary member with write access could silently rewrite or permanently delete a colleague's messages while the forged content stayed attributed to the original author. The blast radius is limited to the four packages that formally depend on open-webui and to organizations that have enabled the optional channels feature, and exploitation likelihood is low in absolute terms (EPSS 0.3%, though that still ranks in the top 78th percentile of all scored CVEs) with no CISA KEV listing and a CISA SSVC rating of TRACK, meaning it's not an emergency-patch situation. It matters anyway because open-webui carries a long track record of security findings (150 other CVEs in this package) and because integrity attacks inside shared AI chat channels — forging what a teammate appeared to say, or wiping the record — are hard to detect after the fact and undermine trust in the platform as a system of record. Patch to open-webui 0.11.0 or later, which requires no configuration change; until then, disable the `ENABLE_CHANNELS` feature flag or restrict standard-channel write grants to trusted users only, and audit channel message edit/delete activity for entries where the acting user differs from the original author.
Is CVE-2026-70481 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-70481, increasing the risk of exploitation.
How to fix CVE-2026-70481?
Upgrade to open-webui 0.11.0 or later, which applies the same authorship check used by group/DM channels to standard channels — no configuration change is required post-upgrade. If immediate patching isn't feasible, mitigate by disabling channels entirely (`ENABLE_CHANNELS=false`) if the feature isn't business-critical, or by tightening standard-channel write grants to a minimal trusted set of users/groups rather than broad public write access. For detection, review channel message edit/delete logs (or database audit trails on the messages table) for edit/delete operations where the acting user ID does not match the message's original author ID — any such record predating the patch is evidence of exploitation. Post-patch, validate the fix with the advisory's own control cases: a read-only member attempting edit/delete should get 403, and cross-member edits on group channels should already be refused.
What systems are affected by CVE-2026-70481?
This vulnerability affects the following AI/ML architecture patterns: Multi-user LLM chat platforms, Shared AI workspace / channel collaboration, ml_ui (chat front-end) deployments.
What is the CVSS score for CVE-2026-70481?
CVE-2026-70481 has a CVSS v3.1 base score of 5.4 (MEDIUM). The EPSS exploitation probability is 0.29%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0092 Manipulate User LLM Chat History Compliance Controls Affected
What are the technical details?
Original Advisory
## 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.
Exploitation Scenario
An organization enables open-webui channels for team collaboration around AI workflows and grants a standard channel public write access so any employee can participate. A disgruntled or compromised low-privilege employee account calls the channel's message-listing endpoint to enumerate message IDs belonging to a colleague, then issues an authenticated POST to the update-message endpoint for a message they didn't write — the handler checks only that the caller has channel write access, not authorship, so the request succeeds and the colleague's message is silently rewritten while still displaying as authored by the original user. The same account then issues DELETE requests against other members' messages to erase parts of the channel's history, for example scrubbing evidence of a flagged AI output or an incident discussion, with no elevated role or channel ownership ever required.
Weaknesses (CWE)
CWE-284 Improper Access Control
Primary
CWE-862 Missing Authorization
Primary
CWE-284 Improper Access Control CWE-862 Missing Authorization CWE-284 — Improper Access Control: The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.
- [Architecture and Design, Operation] Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
- [Architecture and Design] Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L 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