Medium severity · published Jun 23, 2026
CVE-2026-54022
Open WebUI: Any authenticated user can read other users' private notes via Socket.IO
5.3
CVSS
0.3%
EPSS
No
On KEV
Description
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.8.11, the ydoc:document:join Socket.IO handler checks note ownership only when the document_id starts with note: (colon). However, the YdocManager storage layer normalizes all document IDs by replacing colons with underscores (document_id.replace(":", "_")). An attacker can join a document room using note_<id> (underscore) instead of note:<id> (colon), bypassing the authorization check entirely while accessing the same underlying Yjs document. The server then returns the full document state, leaking the victim's private note contents. This vulnerability is fixed in 0.8.11.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N
Attack vector
Network
Complexity
High
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
None
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 28% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
OP
open-webui · open-webui
< 0.8.11 · source: vendor
OW
Open Webui · Openwebui
before 0.8.11 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-54022
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-54022
Vendor Advisory
https://github.com/open-webui/open-webui/security/advisories/GHSA-8788-j68r-3cgh
More from open-webui
9.8
CVE-2026-44566
Open WebUI: Arbitrary File Upload and Path Traversal
9.6
CVE-2026-56400
open-webui - Remote Code Execution via CORS Misconfiguration and Session Validation
9.1
CVE-2026-44551
Open WebUI: LDAP Empty Password Authentication Bypass
9.0
CVE-2026-56398
Open WebUI - Stored Cross-Site Scripting via OAuth Picture Claim SVG Data URI
9.0
CVE-2026-59216
Open WebUI: Cross-user code-interpreter and tool execution via unvalidated Socket.IO event-caller session_id
