CVE-2026-59219: Open WebUI: revoked JWTs bypass WebSocket auth
GHSA-855v-hq7w-jmjw HIGH PoC AVAILABLE CISA: TRACK*Open WebUI's realtime layer — Socket.IO connections, channel and note joins, and the built-in terminal websocket — authenticated users by decoding their JWT without ever checking Redis's revocation list, so a token an admin explicitly revoked (logout-all, offboarding, incident response) kept working for live sessions until it naturally expired. This matters because it defeats the exact control CISOs rely on to cut off access fast: revoke a compromised or offboarded user's token and assume they're locked out, when in reality they can still ride a realtime connection into private channels, notes, and — if terminal access is enabled — a shell scoped to their prior permissions. The bug requires Redis-backed token storage (not every deployment uses this) and prior low-privilege authentication, and real-world urgency is dampened by an EPSS score of just 0.0025, no public exploit or Nuclei template, and no CISA KEV listing. Even so, with a mature, actively developed project (130 other CVEs on record) and full confidentiality impact (C:H) on any realtime data stream, self-hosted Open WebUI deployments should treat this as a priority patch, since silent revocation gaps are exactly what security teams don't monitor for. Upgrade to 0.10.0 immediately; until then, force-restart affected instances after any revocation event and shorten JWT/session TTLs to limit the exposure window.
What is the risk?
High severity (CVSS 7.1) driven by a full confidentiality breach (C:H) via a low-complexity, no-user-interaction network attack, but real-world risk is currently moderate: exploitation requires Redis-backed session storage plus a genuinely revoked-but-unexpired JWT already in the attacker's possession. EPSS sits at just 0.25% (84th percentile, not top-tier), there is no public exploit, no Nuclei template, and it is not in CISA KEV. The realistic threat actor is an insider, a departing employee, or a party who captured a token before it was revoked (stolen device, phished session) rather than an opportunistic remote scanner.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Open WebUI | pip | >= 0.9.0, < 0.10.0 | 0.10.0 |
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.10.0 immediately — it fixes the revocation check across all affected websocket handshakes (commit 33b91bd8, GHSA-855v-hq7w-jmjw). If immediate upgrade isn't possible, shorten JWT expiry/session TTL to reduce the exposure window, disable the terminal websocket feature for non-admin accounts, and force-restart the Open WebUI service after any credential revocation to drop live socket connections tied to the old token. For detection, review Redis-backed session and Socket.IO connection logs for sessions persisting past their known revocation timestamp, and flag terminal-websocket activity from recently offboarded or reset accounts.
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-59219?
Open WebUI's realtime layer — Socket.IO connections, channel and note joins, and the built-in terminal websocket — authenticated users by decoding their JWT without ever checking Redis's revocation list, so a token an admin explicitly revoked (logout-all, offboarding, incident response) kept working for live sessions until it naturally expired. This matters because it defeats the exact control CISOs rely on to cut off access fast: revoke a compromised or offboarded user's token and assume they're locked out, when in reality they can still ride a realtime connection into private channels, notes, and — if terminal access is enabled — a shell scoped to their prior permissions. The bug requires Redis-backed token storage (not every deployment uses this) and prior low-privilege authentication, and real-world urgency is dampened by an EPSS score of just 0.0025, no public exploit or Nuclei template, and no CISA KEV listing. Even so, with a mature, actively developed project (130 other CVEs on record) and full confidentiality impact (C:H) on any realtime data stream, self-hosted Open WebUI deployments should treat this as a priority patch, since silent revocation gaps are exactly what security teams don't monitor for. Upgrade to 0.10.0 immediately; until then, force-restart affected instances after any revocation event and shorten JWT/session TTLs to limit the exposure window.
Is CVE-2026-59219 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-59219, increasing the risk of exploitation.
How to fix CVE-2026-59219?
Upgrade to Open WebUI 0.10.0 immediately — it fixes the revocation check across all affected websocket handshakes (commit 33b91bd8, GHSA-855v-hq7w-jmjw). If immediate upgrade isn't possible, shorten JWT expiry/session TTL to reduce the exposure window, disable the terminal websocket feature for non-admin accounts, and force-restart the Open WebUI service after any credential revocation to drop live socket connections tied to the old token. For detection, review Redis-backed session and Socket.IO connection logs for sessions persisting past their known revocation timestamp, and flag terminal-websocket activity from recently offboarded or reset accounts.
What systems are affected by CVE-2026-59219?
This vulnerability affects the following AI/ML architecture patterns: LLM chat UI platforms, realtime/collaborative AI interfaces, self-hosted AI deployments.
What is the CVSS score for CVE-2026-59219?
CVE-2026-59219 has a CVSS v3.1 base score of 7.1 (HIGH). The EPSS exploitation probability is 0.46%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0091.000 Application Access Token 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 before 0.10.0 with Redis configured, Socket.IO connect, user-join, join-channels, join-note, and the terminal websocket first-message authentication used decode_token without the Redis-backed is_valid_token revocation check, allowing revoked JWTs to continue authenticating realtime connections. This issue is fixed in version 0.10.0.
Exploitation Scenario
A security team detects a compromised laptop belonging to an Open WebUI user and immediately revokes that user's session token via the admin panel, assuming this cuts off access. The attacker, who already captured the JWT before revocation, opens a direct Socket.IO connection to the Open WebUI instance and presents the same now-revoked token during the connect/join-channels handshake. Because decode_token validates the JWT's signature and expiry but never checks the Redis is_valid_token revocation flag, the server accepts the connection as the victim user. The attacker now rides a live realtime session into the victim's private chat channels and notes, and — if the terminal websocket is enabled for that account — gains an interactive shell scoped to the victim's permissions, all while the security team believes access was already cut off.
Weaknesses (CWE)
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:L/UI:N/S:U/C:H/I:L/A:N References
- github.com/open-webui/open-webui/commit/33b91bd8ae8a100a5a306c91441a7d0b422c4cde x_refsource_MISC
- github.com/open-webui/open-webui/releases/tag/v0.10.0 x_refsource_MISC
- github.com/open-webui/open-webui/security/advisories/GHSA-855v-hq7w-jmjw x_refsource_CONFIRM
- github.com/advisories/GHSA-855v-hq7w-jmjw
- nvd.nist.gov/vuln/detail/CVE-2026-59219
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