id: PYSEC-2026-2713
published: "2026-07-13T15:46:29.140160Z"
modified: "2026-07-13T16:05:11.679315Z"
aliases:
- CVE-2025-46571
- GHSA-8gh5-qqh8-hq3x
summary: Open WebUI allows limited stored XSS vila uploaded html file
details: "### Summary\nLow privileged users can upload HTML files which contain JavaScript code via the `/api/v1/files/` backend endpoint. This endpoint returns a file id, which can be used to open the file in the browser and trigger the JavaScript code in the user's browser. Under the default settings, files uploaded by low-privileged users can only be viewed by admins or themselves, limiting the impact of this vulnerability.\n\n### Details\n\nThe following HTTP request can be sent to the backend server to upload a file with the contents:\n``\n\n```http\nPOST /api/v1/files/ HTTP/1.1\nHost: localhost:8080\nContent-Length: 286\nauthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg2NjA1NTZhLTc0OWQtNDdmNS1iMjgwLWRiYzkyYzc2ZjM1NiJ9.4cImklYQUVi3dlXmRtQwdZKEleu0cq4tXompMod8X2U\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryr0PnRBBHKXD9UEdm\n\n------WebKitFormBoundaryr0PnRBBHKXD9UEdm\nContent-Disposition: form-data; name=\"file\"; filename=\"test.html\"\nContent-Type: text/html\n\n
padding
\n\n------WebKitFormBoundaryr0PnRBBHKXD9UEdm--\n```\n\nNote the `filename=\"test.html\"` , `Content-Type: text/html`, and `padding in the request's body. These are important because some form of sanitization or filtering was observed which caused errors when uploading an html file that only conained a `\n------WebKitFormBoundaryr0PnRBBHKXD9UEdm--\n```\n\nThen copy the `id` from the response and use it to view the file in the browser at `/api/v1/files//content/html`\n\n\n### Impact\n\nLow privileged users can upload HTML files containing malicious JavaScript code. A link to such a file can be sent to an admin, and if clicked, will give the low-privileged user complete control over the admin's account, ultimately enabling RCE via functions, as described in https://github.com/open-webui/open-webui/security/advisories/GHSA-9f4f-jv96-8766"
affected:
- package:
name: open-webui
ecosystem: PyPI
purl: pkg:pypi/open-webui
ranges:
- type: ECOSYSTEM
events:
- introduced: "0"
- fixed: 0.6.6
versions:
- 0.1.124
- 0.1.125
- 0.2.0
- 0.2.1
- 0.2.2
- 0.2.3
- 0.2.4
- 0.2.5
- 0.3.0
- 0.3.1
- 0.3.10
- 0.3.12
- 0.3.13
- 0.3.14
- 0.3.15
- 0.3.16
- 0.3.17
- 0.3.17.dev2
- 0.3.17.dev3
- 0.3.17.dev4
- 0.3.17.dev5
- 0.3.18
- 0.3.19
- 0.3.2
- 0.3.20
- 0.3.21
- 0.3.22
- 0.3.23
- 0.3.24
- 0.3.25
- 0.3.26
- 0.3.27
- 0.3.27.dev1
- 0.3.27.dev2
- 0.3.27.dev3
- 0.3.28
- 0.3.29
- 0.3.3
- 0.3.30
- 0.3.30.dev1
- 0.3.30.dev2
- 0.3.31
- 0.3.31.dev1
- 0.3.32
- 0.3.33
- 0.3.33.dev1
- 0.3.34
- 0.3.35
- 0.3.4
- 0.3.5
- 0.3.6
- 0.3.7
- 0.3.8
- 0.3.9
- 0.4.0
- 0.4.0.dev1
- 0.4.0.dev2
- 0.4.1
- 0.4.2
- 0.4.3
- 0.4.4
- 0.4.5
- 0.4.6
- 0.4.6.dev1
- 0.4.7
- 0.4.8
- 0.5.0
- 0.5.0.dev1
- 0.5.0.dev2
- 0.5.1
- 0.5.10
- 0.5.11
- 0.5.12
- 0.5.13
- 0.5.14
- 0.5.15
- 0.5.16
- 0.5.17
- 0.5.18
- 0.5.19
- 0.5.2
- 0.5.20
- 0.5.3
- 0.5.3.dev1
- 0.5.4
- 0.5.5
- 0.5.6
- 0.5.7
- 0.5.8
- 0.5.9
- 0.6.0
- 0.6.1
- 0.6.2
- 0.6.3
- 0.6.4
- 0.6.5
- 0.6.6.dev1
references:
- type: WEB
url: https://github.com/open-webui/open-webui/security/advisories/GHSA-8gh5-qqh8-hq3x
- type: ADVISORY
url: https://nvd.nist.gov/vuln/detail/CVE-2025-46571
- type: WEB
url: https://github.com/open-webui/open-webui/commit/ef2aeb7c0eb976bac759e59ac359c94a5b8dc7e0
- type: PACKAGE
url: https://github.com/open-webui/open-webui
- type: WEB
url: "https://github.com/open-webui/open-webui/blob/main/backend/open_webui/routers/files.py#L434-L438"
- type: WEB
url: https://github.com/open-webui/open-webui/releases/tag/v0.6.6
- type: PACKAGE
url: https://pypi.org/project/open-webui
- type: ADVISORY
url: https://github.com/advisories/GHSA-8gh5-qqh8-hq3x
severity:
- type: CVSS_V4
score: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N