open-webui/backend/open_webui
Classic298 4f93c3e36c
fix: authorize before cancelling tasks in the chat delete endpoint (#27006)
DELETE /api/v1/chats/{id} called stop_item_tasks(id) before checking the
caller's chat.delete permission or ownership of the target chat. An
authenticated user who knew another user's chat id could therefore cancel that
chat's in-flight generation (streaming response, title or tag generation) even
though the deletion was then rejected. The chat id is discoverable through
legitimate read-only access to a shared chat or folder.

Reorder the handler to authorize first (admin, or owner holding chat.delete) and
only then cancel tasks and delete, matching the dedicated task-stop endpoint.
Legitimate deletions are unchanged; an unauthorized caller now returns 404 or 401
before any cancellation. The duplicated tag-cleanup and event-publish blocks are
merged.

Co-authored-by: GabrielGomesAL <193945687+GabrielGomesAL@users.noreply.github.com>
2026-07-26 18:57:35 -04:00
..
data refac: mv backend files to /open_webui dir 2024-09-04 16:54:48 +02:00
internal perf: cut per-request database session overhead (#27385) 2026-07-23 17:49:48 -05:00
migrations refac 2026-07-24 01:54:36 -04:00
models refac 2026-07-26 18:46:39 -04:00
retrieval refac 2026-07-26 18:54:17 -04:00
routers fix: authorize before cancelling tasks in the chat delete endpoint (#27006) 2026-07-26 18:57:35 -04:00
socket fix: scope timer cancellation to the timer's owner (#27472) 2026-07-26 18:12:44 -04:00
static refac 2026-07-20 22:27:13 -04:00
storage refac: modernize type annotations (PEP 604 / PEP 585) 2026-05-12 17:10:15 +09:00
tools fix: enforce automation limits in the builtin automation tools (#27523) 2026-07-26 17:55:56 -04:00
utils fix: refresh OAuth session before the id_token expires (#27520) 2026-07-26 18:56:18 -04:00
__init__.py refac 2026-06-17 03:01:11 +02:00
alembic.ini fix: Alembic CLI commands from failing 2025-08-15 04:17:47 -04:00
config.py feat: add OpenSERP self-hosted web search backend (#27437) 2026-07-26 18:52:08 -04:00
constants.py refac 2026-06-29 05:46:51 -05:00
env.py refac 2026-07-26 18:36:49 -04:00
events.py Log upstream provider rejections at warn/error level (#27238) 2026-07-23 03:42:48 -04:00
functions.py refac 2026-07-23 03:39:56 -04:00
main.py refac 2026-07-26 18:46:39 -04:00
tasks.py refac 2026-07-16 21:57:43 -04:00