CVE-2026-87014: Open WebUI: demoted admins keep socket access to all notes
GHSA-wjwr-xfp9-r66p MEDIUM CISA: ATTENDA stale-session bug in Open WebUI lets a user who is demoted from administrator — via a trusted role header or OAuth role mapping — keep reading and editing every user's collaborative notes for as long as their existing Socket.IO connection stays open, because the cached user object in the socket layer is never invalidated when the database role changes. The blast radius is contained to Open WebUI's own collaborative-notes feature and requires the attacker to already hold high privileges (PR:H), which caps severity at CVSS 6.5 medium, and the EPSS score of 0.28% confirms opportunistic mass exploitation is very unlikely — this is a targeted insider-risk and access-governance issue, not a spray-and-pray bug. There is no CISA KEV listing, no public exploit, and no Nuclei template, so treat it as a patch-and-move-on item rather than an emergency. Upgrade to Open WebUI 0.11.1 or later immediately on any instance where administrator roles are dynamically assigned via header trust or OAuth group mapping, and in the interim force-disconnect active Socket.IO sessions (or restart the service) whenever an admin's role is downgraded to close the exposure window.
What is the risk?
Medium severity (CVSS 6.5, C:H/I:H/A:N) with high privileges required for initial exploitation, which meaningfully limits who can trigger it — the attacker must already hold or have recently held administrator rights. Attack complexity is low and no user interaction is needed once the precondition (an open socket at demotion time) exists, so exploitation itself is trivial for anyone positioned to trigger it, including a departing or soon-to-be-demoted admin deliberately keeping a tab open. EPSS (0.28%) and the absence of KEV listing, public PoC, or scanner coverage indicate this is not being actively targeted and is unlikely to see broad opportunistic exploitation. The realistic risk is insider-driven: a disgruntled or compromised admin account can use this to retain read/write access to sensitive collaborative notes across the tenant even after being demoted.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Open WebUI | pip | >= 0.9.0, < 0.11.1 | 0.11.1 |
Do you use Open WebUI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to Open WebUI 0.11.1 or later, which invalidates the cached socket user record on role change. Until patched, any tenant using trusted role headers or OAuth role mapping for admin assignment should force-terminate active Socket.IO sessions (or bounce the service) immediately after demoting an administrator, and audit recent admin role-downgrade events for anomalous note access during the exposure window. Detection: monitor for note read/edit activity attributed to a user ID shortly after that user's role was changed from admin to a lower privilege level, using existing audit logs or Socket.IO connection logs if available. Longer term, review who is provisioned as admin via automated header/OAuth mapping, since this class of bug specifically targets that provisioning path.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-87014?
A stale-session bug in Open WebUI lets a user who is demoted from administrator — via a trusted role header or OAuth role mapping — keep reading and editing every user's collaborative notes for as long as their existing Socket.IO connection stays open, because the cached user object in the socket layer is never invalidated when the database role changes. The blast radius is contained to Open WebUI's own collaborative-notes feature and requires the attacker to already hold high privileges (PR:H), which caps severity at CVSS 6.5 medium, and the EPSS score of 0.28% confirms opportunistic mass exploitation is very unlikely — this is a targeted insider-risk and access-governance issue, not a spray-and-pray bug. There is no CISA KEV listing, no public exploit, and no Nuclei template, so treat it as a patch-and-move-on item rather than an emergency. Upgrade to Open WebUI 0.11.1 or later immediately on any instance where administrator roles are dynamically assigned via header trust or OAuth group mapping, and in the interim force-disconnect active Socket.IO sessions (or restart the service) whenever an admin's role is downgraded to close the exposure window.
Is CVE-2026-87014 actively exploited?
No confirmed active exploitation of CVE-2026-87014 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-87014?
Upgrade to Open WebUI 0.11.1 or later, which invalidates the cached socket user record on role change. Until patched, any tenant using trusted role headers or OAuth role mapping for admin assignment should force-terminate active Socket.IO sessions (or bounce the service) immediately after demoting an administrator, and audit recent admin role-downgrade events for anomalous note access during the exposure window. Detection: monitor for note read/edit activity attributed to a user ID shortly after that user's role was changed from admin to a lower privilege level, using existing audit logs or Socket.IO connection logs if available. Longer term, review who is provisioned as admin via automated header/OAuth mapping, since this class of bug specifically targets that provisioning path.
What systems are affected by CVE-2026-87014?
This vulnerability affects the following AI/ML architecture patterns: Self-hosted LLM web UI / chat platforms, Multi-user collaborative AI workspaces, Real-time (WebSocket) session layers in AI platforms.
What is the CVSS score for CVE-2026-87014?
CVE-2026-87014 has a CVSS v3.1 base score of 6.5 (MEDIUM). The EPSS exploitation probability is 0.29%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts Compliance Controls Affected
What are the technical details?
Original Advisory
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.0 until 0.11.1, role synchronization in backend/open_webui/routers/auths.py and backend/open_webui/utils/oauth.py updated an administrator's database role without invalidating the user record cached by backend/open_webui/socket/main.py. An administrator demoted through a trusted role header or OAuth role mapping could keep an already-open Socket.IO connection and continue reading or editing every user's collaborative notes until that connection closed. This issue is fixed in version 0.11.1.
Exploitation Scenario
An organization uses OAuth group mapping to grant administrator rights in Open WebUI. A user is granted temporary admin access for a project, opens the web UI, and establishes a long-lived Socket.IO connection. When the project ends, an administrator revokes the OAuth group membership, demoting the user's database role back to standard user — but because the socket layer never re-checks the cached role, the demoted user's still-open browser tab continues to receive and send collaborative-notes read/write events as if still an admin, letting them silently continue reading or modifying every other user's private notes until they close the tab or the connection drops. The same technique could be used deliberately by an admin who anticipates being demoted, keeping a background tab open specifically to retain access after the fact.
Weaknesses (CWE)
CWE-613 Insufficient Session Expiration
Primary
CWE-863 Incorrect Authorization
Primary
CWE-613 Insufficient Session Expiration CWE-863 Incorrect Authorization CWE-613 — Insufficient Session Expiration: According to WASC, "Insufficient Session Expiration is when a web site permits an attacker to reuse old session credentials or session IDs for authorization."
- [Implementation] Set sessions/credentials expiration date.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N References
- github.com/open-webui/open-webui/commit/ce3c175e260709f359d7e6cbb3132f0572098b95 x_refsource_MISC
- github.com/open-webui/open-webui/releases/tag/v0.11.1 x_refsource_MISC
- github.com/open-webui/open-webui/security/advisories/GHSA-wjwr-xfp9-r66p x_refsource_CONFIRM
- github.com/advisories/GHSA-wjwr-xfp9-r66p
- nvd.nist.gov/vuln/detail/CVE-2026-87014
Timeline
Related Vulnerabilities
CVE-2026-44551 9.1 open-webui: LDAP auth bypass — full account takeover
Same package: open-webui CVE-2026-45672 8.8 open-webui: code exec gate bypass via API endpoint
Same package: open-webui CVE-2026-44552 8.7 open-webui: Redis cache poisoning enables cross-instance tool hijack
Same package: open-webui CVE-2025-64495 8.7 Open WebUI: XSS-to-RCE via malicious prompt injection
Same package: open-webui CVE-2026-45315 8.7 open-webui: stored XSS → JWT theft and admin takeover
Same package: open-webui