CVE-2026-70483: Open WebUI: broken authz cancels other users' chats

GHSA-3vf6-64vr-3g56 LOW PoC AVAILABLE CISA: TRACK*
Published August 4, 2026
CISO Take

Open WebUI's chat deletion endpoint canceled a chat's in-flight generation before checking whether the caller actually owned or was permitted to delete that chat, so any authenticated low-privilege user who obtained another user's chat id could silently abort their running model response, title generation, or tag generation. The bug requires nothing beyond a default 'user' role account and a valid chat id — no special permission, and revoking chat.delete does not stop it — which keeps exploitation trivial even though CVSS scores it low (3.1) because no data is disclosed, modified, or deleted. EPSS sits at 0.00244 with a public PoC available and CISA SSVC tracking it as TRACK_STAR, meaning it's monitored but not flagged for urgent action; there's no KEV listing or Nuclei template, so this is an availability nuisance rather than an active exploitation concern. Any org self-hosting Open WebUI (150 other CVEs recorded in this package, 4 downstream dependents) should upgrade to 0.11.0 where the handler now authorizes before cancelling, and in the interim watch for repeated DELETE /api/v1/chats/{id} calls returning 401/404 from non-owner accounts as a signal of scripted harassment against shared or team chats.

Sources: NVD GitHub Advisory EPSS

What is the risk?

Low severity per CVSS (3.1, AV:N/AC:H/PR:L/UI:N/C:N/I:N/A:L) — confidentiality and integrity are untouched, and impact is limited to availability of an in-progress generation that the victim can simply re-trigger. Exploitability is technically trivial (only a low-privileged authenticated account and a known chat id are needed) but practically constrained by attack complexity: the attacker must already know or obtain the victim's chat id (via a shared-chat/folder link or brute force) and time the request while a generation is actively running. EPSS (0.00244) and the absence of CISA KEV or a Nuclei template both suggest this is not being mass-exploited, and SSVC TRACK_STAR confirms a 'monitor, no urgent action' posture. The main residual risk is nuisance-level, scriptable harassment inside multi-tenant or team deployments where chat/folder sharing is common.

How does the attack unfold?

Initial Access
Attacker authenticates with a normal, default-role 'user' account on the target Open WebUI instance.
AML.T0012
Target discovery
Attacker obtains the victim's chat id from a shared chat/folder link (or by guessing/brute-forcing), which the read-only shared-chat endpoint discloses.
Exploitation
While the victim's generation is streaming, the attacker sends DELETE /api/v1/chats/{chat_id}; the deletion is refused for lack of ownership, but the handler had already canceled the victim's in-flight task before that check ran.
Impact
The victim's response, title, or tag generation is aborted mid-stream with no explanation, and the attack can be scripted and repeated for as long as the chat id remains reachable.
AML.T0029

What systems are affected?

Package Ecosystem Vulnerable Range Patched
Open WebUI pip >= 0.9.6, < 0.11.0 0.11.0
152.6K 3 dependents Pushed 2d ago 83% patched ~5d to patch Full package profile →

Do you use Open WebUI? You're affected.

How severe is it?

CVSS 3.1
3.1 / 10
EPSS
0.3%
chance of exploitation in 30 days
Higher than 23% of all CVEs
Exploitation Status
Exploit Available
Exploitation: MEDIUM
Sophistication
Trivial
Exploitation Confidence
medium
CISA SSVC: Public PoC
Public PoC indexed (trickest/cve)
Composite signal derived from CISA KEV, VulnCheck KEV, CISA SSVC, EPSS, Metasploit, Exploit-DB, trickest/cve, Nuclei templates, and inthewild.io exploitation reports.

What is the attack surface?

AV AC PR UI S C I A
AV Network
AC High
PR Low
UI None
S Unchanged
C None
I None
A Low

What should I do?

1 step
  1. Upgrade Open WebUI to 0.11.0 or later, where delete_chat_by_id resolves and authorizes the chat (admin or permitted owner) before performing any cancellation or deletion, matching the ordering already used by the dedicated task-stop endpoint. If immediate upgrade isn't possible, restrict or disable chat/folder sharing to reduce the pool of chat ids reachable by non-owners, and monitor access logs for repeated DELETE /api/v1/chats/{id} requests returning 401/404 from accounts that don't own the target chat — a pattern indicating scripted cancellation abuse. No workaround exists that fully closes the gap short of patching, since revoking the chat.delete permission does not prevent the cancellation side effect.

What does CISA's SSVC say?

Decision Track*
Exploitation poc
Automatable No
Technical Impact partial

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:

EU AI Act
Article 15 - Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.4 - AI system access control
NIST AI RMF
MANAGE-4.1 - AI system risk response and monitoring

Frequently Asked Questions

What is CVE-2026-70483?

Open WebUI's chat deletion endpoint canceled a chat's in-flight generation before checking whether the caller actually owned or was permitted to delete that chat, so any authenticated low-privilege user who obtained another user's chat id could silently abort their running model response, title generation, or tag generation. The bug requires nothing beyond a default 'user' role account and a valid chat id — no special permission, and revoking chat.delete does not stop it — which keeps exploitation trivial even though CVSS scores it low (3.1) because no data is disclosed, modified, or deleted. EPSS sits at 0.00244 with a public PoC available and CISA SSVC tracking it as TRACK_STAR, meaning it's monitored but not flagged for urgent action; there's no KEV listing or Nuclei template, so this is an availability nuisance rather than an active exploitation concern. Any org self-hosting Open WebUI (150 other CVEs recorded in this package, 4 downstream dependents) should upgrade to 0.11.0 where the handler now authorizes before cancelling, and in the interim watch for repeated DELETE /api/v1/chats/{id} calls returning 401/404 from non-owner accounts as a signal of scripted harassment against shared or team chats.

Is CVE-2026-70483 actively exploited?

Proof-of-concept exploit code is publicly available for CVE-2026-70483, increasing the risk of exploitation.

How to fix CVE-2026-70483?

Upgrade Open WebUI to 0.11.0 or later, where delete_chat_by_id resolves and authorizes the chat (admin or permitted owner) before performing any cancellation or deletion, matching the ordering already used by the dedicated task-stop endpoint. If immediate upgrade isn't possible, restrict or disable chat/folder sharing to reduce the pool of chat ids reachable by non-owners, and monitor access logs for repeated DELETE /api/v1/chats/{id} requests returning 401/404 from accounts that don't own the target chat — a pattern indicating scripted cancellation abuse. No workaround exists that fully closes the gap short of patching, since revoking the chat.delete permission does not prevent the cancellation side effect.

What systems are affected by CVE-2026-70483?

This vulnerability affects the following AI/ML architecture patterns: model serving, agent frameworks.

What is the CVSS score for CVE-2026-70483?

CVE-2026-70483 has a CVSS v3.1 base score of 3.1 (LOW). The EPSS exploitation probability is 0.30%.

What is the AI security impact?

Affected AI Architectures

model servingagent frameworks

MITRE ATLAS Techniques

AML.T0012 Valid Accounts
AML.T0029 Denial of AI Service

Compliance Controls Affected

EU AI Act: Article 15
ISO 42001: A.6.2.4
NIST AI RMF: MANAGE-4.1

What are the technical details?

Original Advisory

## Summary `DELETE /api/v1/chats/{id}` cancelled a chat's in-flight tasks before it checked whether the caller was allowed to delete that chat. Any authenticated user who knew another user's chat id could therefore abort that user's running model response, title generation or tag generation. The deletion itself was still refused, so the only missing control was on the cancellation side effect. ## Preconditions Default configuration, no special deployment shape. The attacker needs a normal account with the default `user` role and nothing else: the `chat.delete` permission is not required, and revoking it does not prevent the cancellation. The attacker also needs the victim's chat id, which is returned by the read-only shared-chat endpoint when a chat or a folder has been shared with them - otherwise enumerating the chat id requires guessing the chat id or brute forcing it, and the victim must have a generation running at that moment. ## Impact A user can repeatedly interrupt another user's generations without any write access to the target chat. Nothing is deleted, modified or disclosed, and the victim can simply regenerate, so the effect is limited to availability of in-flight responses. Because the attacker only needs a chat id, the interruption can be scripted and repeated for as long as the id stays valid. ## Fix Fixed in https://github.com/open-webui/open-webui/pull/27006, released in 0.11.0. The handler now resolves and authorizes the chat first and only cancels tasks and deletes once the caller is an admin or a permitted owner; an unauthorized caller gets 401 or 404 with no cancellation. ## Root cause Affected component: `delete_chat_by_id` in `backend/open_webui/routers/chats.py`, serving `DELETE /api/v1/chats/{id}`. Affected setup: every build from 0.9.6 up to and including 0.10.2. The cancellation was written as a cleanup step for the delete that follows it, and it was placed at the top of the handler so that it would run before the chat row disappeared. That put an unauthenticated-by-ownership side effect ahead of every check in the function: the admin branch, the `chat.delete` permission check, and the owner lookup all ran afterwards, so their outcome could no longer affect whether the tasks were stopped. The dedicated task-stop endpoint already verified ownership before calling the same helper, so the intended ordering existed elsewhere in the codebase. ## Proof of concept Against a 0.10.2 instance with two accounts, a victim admin and an attacker holding the default `user` role, and an upstream that streams slowly: 1. As the victim, start a generation in a chat and confirm `GET /api/tasks/chat/{chat_id}` reports one active task. 2. As the attacker, confirm `GET /api/v1/chats/{chat_id}` returns 401, then send `DELETE /api/v1/chats/{chat_id}`. 3. The delete is refused with 404, the chat still exists, but the victim's task list is now empty and the assistant message is marked done mid-generation. A control run without step 2 keeps generating. Repeating step 2 with the `chat.delete` permission revoked for the `user` role returns 401 and still cancels the task. The same sequence against 0.11.0 leaves the task running. ## Credits @GabrielGomesAL, who reported the missing authorization on the chat delete endpoint.

Exploitation Scenario

An attacker with a standard 'user' account on a shared Open WebUI instance obtains a victim's chat id — for example via a chat or folder the victim shared with them, or by brute-forcing ids. While the victim has a generation actively streaming (a long model response, or an auto-generated title/tag task), the attacker sends DELETE /api/v1/chats/{chat_id}. The deletion itself is refused with a 404 since the attacker isn't authorized to delete the chat, but the handler had already canceled the victim's in-flight task as a side effect before that authorization check ran. The victim's response is truncated mid-generation with no error explaining why. The attacker can script this against any known chat id, repeatedly interrupting the same victim's work as long as the id remains valid and sharing isn't revoked.

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:H/PR:L/UI:N/S:U/C:N/I:N/A:L

Timeline

Published
August 4, 2026
Last Modified
August 5, 2026
First Seen
August 4, 2026

Related Vulnerabilities