CVE-2026-29070

GHSA-26gm-93rw-cchf MEDIUM

open-webui: missing authz allows cross-KB file deletion

Published March 27, 2026
CISO Take

Any authenticated Open WebUI user can destroy files in knowledge bases they don't own — just by knowing a file ID. This directly sabotages RAG pipelines: an attacker can silently gut a colleague's knowledge base, degrading AI assistant quality without triggering obvious errors. Patch to 0.8.6 immediately; if you can't, restrict knowledge base write access to trusted users only.

Affected Systems

Package Ecosystem Vulnerable Range Patched
open-webui pip < 0.8.6 0.8.6

Do you use open-webui? You're affected.

Severity & Risk

CVSS 3.1
5.4 / 10
EPSS
0.0%
chance of exploitation in 30 days
KEV Status
Not in KEV
Sophistication
Trivial

Recommended Action

  1. 1. Upgrade open-webui pip package to >= 0.8.6 (fix validates file-to-knowledge-base ownership before deletion). 2. If immediate patching is blocked: restrict knowledge base write permissions to admin-only via Open WebUI RBAC settings. 3. Audit access logs for anomalous POST requests to /api/v1/knowledge/{id}/file/remove where the {id} does not match the authenticated user's own knowledge bases. 4. Back up knowledge base contents and vector collections regularly — this attack leaves no recoverable state. 5. Rotate API bearer tokens if unauthorized deletions are suspected.

Classification

Compliance Impact

This CVE is relevant to:

EU AI Act
Art. 15 - Accuracy, robustness and cybersecurity
ISO 42001
A.6.2 - Access control for AI systems
NIST AI RMF
MANAGE-2.2 - Manage AI risks related to data quality and integrity
OWASP LLM Top 10
LLM08:2025 - Vector and Embedding Weaknesses

Technical Details

NVD Description

### Summary An access control check is missing when deleting a file from a knowledge base. The only check being done is that the user has write access to the knowledge base (or is admin), but NOT that the file actually belongs to this knowledge base. It is thus possible to delete arbitrary files from arbitrary knowledge bases (as long as one knows the file id) ### Details The source code at https://github.com/open-webui/open-webui/blob/main/backend/open_webui/routers/knowledge.py#L803 does not properly validate that the file being deleted belongs to the current knowledge base: ``` @router.post("/{id}/file/remove", response_model=Optional[KnowledgeFilesResponse]) def remove_file_from_knowledge_by_id( id: str, form_data: KnowledgeFileIdForm, delete_file: bool = Query(True), user=Depends(get_verified_user), db: Session = Depends(get_session), ): knowledge = Knowledges.get_knowledge_by_id(id=id, db=db) [...] # Note : Access control check on the knowledge base if ( knowledge.user_id != user.id and not AccessGrants.has_access( user_id=user.id, resource_type="knowledge", resource_id=knowledge.id, permission="write", db=db, ) and user.role != "admin" ): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.ACCESS_PROHIBITED, ) file = Files.get_file_by_id(form_data.file_id, db=db) [...] # Note : No checks on the file if delete_file: try: # Remove the file's collection from vector database file_collection = f"file-{form_data.file_id}" if VECTOR_DB_CLIENT.has_collection(collection_name=file_collection): VECTOR_DB_CLIENT.delete_collection(collection_name=file_collection) except Exception as e: log.debug("This was most likely caused by bypassing embedding processing") log.debug(e) pass # Delete file from database Files.delete_file_by_id(form_data.file_id, db=db) [...] ``` ### PoC Victim has a knowledge base with a file (id: 9db6dcee-bb3b-483e-aaf3-310fda366af1) Attacker creates their own collection (id: dde9e2b6-21c9-4aa1-a1cf-8cb0e4392f2b) Attacker deletes the victim file from their own collection: ``` POST /api/v1/knowledge/dde9e2b6-21c9-4aa1-a1cf-8cb0e4392f2b/file/remove HTTP/1.1 Host: gaius-neo-val.fr.space.corp Authorization: Bearer eyJhbGciOiJIUzI1[...]nHiaod-3vfNE0 [...] {"file_id":"9db6dcee-bb3b-483e-aaf3-310fda366af1"} ----- HTTP/1.1 200 OK [...] ``` The file is then deleted from the victim's knowledge base. ### Impact Arbitrary file deletion

Exploitation Scenario

An attacker with a standard user account on a shared Open WebUI instance (e.g., a corporate AI assistant deployment) creates their own empty knowledge base to obtain a valid collection ID. Through normal use or by observing network traffic, they collect file IDs from a victim's knowledge base — file IDs are UUIDs exposed in API responses. The attacker then sends a POST to their own knowledge base endpoint with the victim's file IDs in the request body. The server checks write access only on the attacker's knowledge base (granted), skips ownership validation on the file, and deletes it from the victim's knowledge base and vector store. A targeted attacker could systematically enumerate and delete all files from critical enterprise knowledge bases (HR policies, security runbooks, compliance docs) that feed production AI assistants, causing silent knowledge degradation.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L

Timeline

Published
March 27, 2026
Last Modified
March 27, 2026
First Seen
March 27, 2026