CVE-2026-59216: Open WebUI: session hijack enables cross-user code exec
GHSA-74h3-cxq7-vc5q HIGH PoC AVAILABLE CISA: ATTENDOpen WebUI's real-time collaboration feature leaked enough information for one authenticated user to hijack another user's active session and force it to run Python code or invoke AI agent tools on their behalf. The flaw is a broken authorization check: the get_event_call handler only verified that a session_id was connected, not that it belonged to the caller, so any low-privileged user who joined a shared document via ydoc:document:join could learn a victim's session identifier and pivot into their code interpreter or tool-execution context. This matters because open-webui carries a track record of 130 other CVEs in the same package, and here the impact is full confidentiality and integrity compromise of another user's session (CVSS 7.7, C:H/I:H) — in a multi-tenant self-hosted LLM deployment that's effectively cross-account code execution and tool abuse. Exploitation requires an authenticated account, high attack complexity, and user interaction (EPSS sits at the 81st percentile, no public exploit or Nuclei template exists, and it is not in CISA KEV), so this is not an opportunistic mass-exploitation risk but is realistic for insider threats or compromised low-priv accounts on shared instances. Upgrade to Open WebUI 0.10.0 immediately on any multi-user deployment; until patched, restrict or disable code interpreter and tool-invocation features and audit Socket.IO/collaboration logs for cross-session execute:python or execute:tool events tied to session IDs not owned by the requesting connection.
What is the risk?
High severity (CVSS 7.7) but exploitation is gated by AC:H and UI:R plus a requirement for a valid low-privileged account, which meaningfully narrows the practical attacker pool versus an unauthenticated network exploit. There is no public exploit code, no Nuclei template, and the CVE is not in CISA KEV or SSVC-flagged, placing near-term mass exploitation likelihood at moderate-to-low despite the EPSS score sitting in the top 19% of all scored vulnerabilities. The real risk driver is deployment context: any Open WebUI instance shared across multiple authenticated users (teams, internal AI platforms, managed self-hosted offerings) is exposed to insider-style session hijacking with full confidentiality and integrity impact on the victim's session, even though availability is unaffected (A:N).
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Open WebUI | pip | < 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 or later immediately, which fixes get_event_call's session validation per GHSA-74h3-cxq7-vc5q and the associated patch (PR #25763, commit 386ac95). If immediate patching isn't possible, disable or restrict the code interpreter and tool-invocation features for multi-user instances, and consider disabling or tightly scoping the collaborative document (ydoc) feature to reduce session_id exposure. Audit Socket.IO server logs for execute:python/execute:tool events where the session_id does not match the originating connection's own authenticated session, and review recent code interpreter output/tool invocation history for actions inconsistent with a given user's normal behavior. Enforce least-privilege on who can create/join collaborative documents, and rotate/invalidate active sessions after upgrading.
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-59216?
Open WebUI's real-time collaboration feature leaked enough information for one authenticated user to hijack another user's active session and force it to run Python code or invoke AI agent tools on their behalf. The flaw is a broken authorization check: the get_event_call handler only verified that a session_id was connected, not that it belonged to the caller, so any low-privileged user who joined a shared document via ydoc:document:join could learn a victim's session identifier and pivot into their code interpreter or tool-execution context. This matters because open-webui carries a track record of 130 other CVEs in the same package, and here the impact is full confidentiality and integrity compromise of another user's session (CVSS 7.7, C:H/I:H) — in a multi-tenant self-hosted LLM deployment that's effectively cross-account code execution and tool abuse. Exploitation requires an authenticated account, high attack complexity, and user interaction (EPSS sits at the 81st percentile, no public exploit or Nuclei template exists, and it is not in CISA KEV), so this is not an opportunistic mass-exploitation risk but is realistic for insider threats or compromised low-priv accounts on shared instances. Upgrade to Open WebUI 0.10.0 immediately on any multi-user deployment; until patched, restrict or disable code interpreter and tool-invocation features and audit Socket.IO/collaboration logs for cross-session execute:python or execute:tool events tied to session IDs not owned by the requesting connection.
Is CVE-2026-59216 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-59216, increasing the risk of exploitation.
How to fix CVE-2026-59216?
Upgrade to Open WebUI 0.10.0 or later immediately, which fixes get_event_call's session validation per GHSA-74h3-cxq7-vc5q and the associated patch (PR #25763, commit 386ac95). If immediate patching isn't possible, disable or restrict the code interpreter and tool-invocation features for multi-user instances, and consider disabling or tightly scoping the collaborative document (ydoc) feature to reduce session_id exposure. Audit Socket.IO server logs for execute:python/execute:tool events where the session_id does not match the originating connection's own authenticated session, and review recent code interpreter output/tool invocation history for actions inconsistent with a given user's normal behavior. Enforce least-privilege on who can create/join collaborative documents, and rotate/invalidate active sessions after upgrading.
What systems are affected by CVE-2026-59216?
This vulnerability affects the following AI/ML architecture patterns: Self-hosted multi-user LLM chat UI, agent frameworks, code interpreter sandboxes.
What is the CVSS score for CVE-2026-59216?
CVE-2026-59216 has a CVSS v3.1 base score of 7.7 (HIGH). The EPSS exploitation probability is 0.31%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012 Valid Accounts AML.T0050 Command and Scripting Interpreter AML.T0053 AI Agent Tool Invocation 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. Prior to 0.10.0, get_event_call delivered execute:python and execute:tool Socket.IO events to a client-supplied session_id after checking only that the session was connected, allowing authenticated users who learned another socket ID through ydoc:document:join to run code interpreter Python or tools in that user session. This issue is fixed in version 0.10.0.
Exploitation Scenario
An attacker with a valid but low-privileged Open WebUI account joins a shared collaborative document via the ydoc:document:join Socket.IO event alongside a higher-value target (e.g., an admin or a user with sensitive tool integrations configured). Through the collaboration channel, the attacker learns the victim's connected session_id. The attacker then emits a crafted execute:python or execute:tool Socket.IO event carrying the victim's session_id instead of their own; because the server only checks that the referenced session is connected — not that it belongs to the requester — the backend runs the Python code or invokes the tool within the victim's authenticated session context. The result is that arbitrary code executes, or agent tools connected to internal systems fire, as if the victim themselves had issued the request, giving the attacker data access or execution privileges they don't otherwise hold.
Weaknesses (CWE)
CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
Primary
CWE-639 Authorization Bypass Through User-Controlled Key
Primary
CWE-862 Missing Authorization
Primary
CWE-94 Improper Control of Generation of Code ('Code Injection')
Primary
CWE-200 Exposure of Sensitive Information to an Unauthorized Actor CWE-639 Authorization Bypass Through User-Controlled Key CWE-862 Missing Authorization CWE-94 Improper Control of Generation of Code ('Code Injection') CWE-200 — Exposure of Sensitive Information to an Unauthorized Actor: The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
- [Architecture and Design] Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N References
- github.com/open-webui/open-webui/commit/386ac958144dbbbf0aa6e268070d72b681a318aa x_refsource_MISC
- github.com/open-webui/open-webui/pull/25763 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-74h3-cxq7-vc5q x_refsource_CONFIRM
- github.com/advisories/GHSA-74h3-cxq7-vc5q
- nvd.nist.gov/vuln/detail/CVE-2026-59216
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