highCVSS 8Vulnerability

CVE-2026-45671

### Summary Any authenticated user can permanently delete files owned by other users via `DELETE /api/v1/files/{id}` when the target file is referenced in any shared chat. The `has_access_to_file()` authorization gate unconditionally grants access through its shared-chat branch. It checks neither the requesting user's identity nor the type of operation being performed. File UUIDs (which would otherwise be impractical to guess) are disclosed to any user with read access to a knowledge base via `GET /api/v1/knowledge/{id}/files`. ### Details The root cause is in `has_access_to_file()` in [backend/open_webui/routers/files.py](https://github.com/open-webui/open-webui/blob/main/backend/open_webui/routers/files.py). When a user calls `DELETE /api/v1/files/{file_id}`, the endpoint delegates authorization to `has_access_to_file(file_id, access_type="write", user=requesting_user)`. Inside that function, one branch checks whether the file is referenced in any shared chat: ```python chats = Chats.get_shared_chats_by_file_id(file_id, db=db) if chats: return True ``` This branch has two missing checks: 1. **No user check:** It asks "does any shared chat anywhere reference this file?", not "does the requesting user own or participate in that chat." Any authenticated user passes this check. 2. **No operation check:** The `access_type` parameter (`"write"` for delete) is accepted but never inspected. The branch returns `True` regardless of whether the caller is requesting read access or delete access. The result: if any user has shared any chat that references a file, that file becomes deletable by every authenticated user on the instance. The delete endpoint has no secondary ownership check (unlike the content-update endpoint), so this authorization bypass leads directly to permanent file removal from the database, disk, and all knowledge base associations. **How an attacker obtains file UUIDs:** UUIDs are impractical to brute-force, but they don't need to be. Any u

Properties

summary
Open WebUI: shared-chat branch ignores access_type, allowing unauthorized file deletion
severity
high
epss_score
0.0027
cvss_score
8
ghsa_published
2026-05-14T20:28:34Z
source_url
https://github.com/advisories/GHSA-26g9-27vm-x3q8
ghsa_updated
2026-05-15T23:55:00Z
ghsa_id
GHSA-26g9-27vm-x3q8
cve_id
CVE-2026-45671
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
is_ghsa_only
false
epss_percentile
0.19096

Related Entities (5)

ENRICHED_BY (1)

[Source]FIRST EPSS

HAS_WEAKNESS (1)

[Weakness]Authorization Bypass Through User-Controlled Key

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/open-webui

AFFECTS (1)

[Software]pip/open-webui

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-45671 (CVSS 8) — Ninja Signal Threat Intelligence | Ninja Signal