Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryCraft malicious session_id in terminal request
-
ExploitInject user_id query param or forge X-User-Id
-
ExecutionBackend resolves victim identity
-
ImpactGain victim terminal session context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Open WebUI account (CVSS PR:L) and an instance that exposes the terminal feature (the ws_terminal WebSocket endpoint in terminals.py). The concrete prerequisite is the ability to supply an attacker-controlled session_id that reaches the unencoded URL-building path, or to send a forged X-User-Id header through the HTTP proxy path - both present by default in vulnerable builds prior to 0.10.0. Limiting factors that reduce real-world risk: the attacker needs a pre-existing account rather than anonymous access, the assigned vector indicates high attack complexity (AC:H) and user interaction (UI:R), and the identity-spoof only has value where multiple distinct user identities coexist - a single-user self-hosted instance has no other identity to impersonate. |
| Impact | The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H, base 8.0) describes a high-impact but non-trivial attack: network-reachable, but requiring an existing low-privileged account (PR:L), high attack complexity (AC:H) to craft the injection and win the identity resolution, and user interaction (UI:R). The scope change (S:C) reflects crossing from the attacker's authority into another user's identity domain, and C:H/I:H/A:H reflect full compromise of the victim's terminal session. No EPSS score, KEV listing, or SSVC decision data was provided, and no public exploit is identified - signals point to a credible but not yet weaponized issue. The AC:H and UI:R conditions materially lower real-world exploitability versus a drive-by unauthenticated bug, so this is a genuine priority for multi-tenant/shared Open WebUI deployments but lower urgency for single-user self-hosted instances. One tension worth verifying: the description frames a direct query-injection/identity-spoof that does not obviously require victim interaction, yet the assigned vector includes UI:R - treat the UI:R qualifier as vendor-assigned rather than confirmed from the technical description. |
| Exploit ScenarioDerived | An attacker holding a valid low-privileged Open WebUI account opens a terminal session and supplies a crafted session_id containing extra 'user_id=' query material (or forges the X-User-Id header on the HTTP proxy path). Because the backend concatenates the unencoded value into the upstream WebSocket URL and trusts the resulting user_id, the terminal backend resolves the attacker to a targeted victim's identity, granting that user's terminal session context. No public proof-of-concept was identified, and the high attack complexity means the attacker must correctly shape the injection to win identity resolution. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 09, 2026
Identity spoofing in Open WebUI before 0.10.0 lets an authenticated low-privileged user impersonate another account by injecting query parameters into the terminal WebSocket URL. Because backend/open_webui/routers/terminals.py built the ws_terminal upstream URL from an unencoded session_id and appended user_id as a query parameter - while the HTTP proxy path trusted an integrity-unbound X-User-Id header - an attacker can make the terminal backend resolve a different user identity, gaining that victim's terminal session context. No public exploit has been identified at time of analysis, but the fix is confirmed in v0.10.0 and the flaw is scored CVSS 8.0.
RemediationAI
Vendor-released patch: upgrade to Open WebUI 0.10.0 or later, which URL-encodes session identifiers and stops trusting the client-supplied X-User-Id claim (see advisory https://github.com/open-webui/open-webui/security/advisories/GHSA-j657-m4c4-24jq and release https://github.com/open-webui/open-webui/releases/tag/v0.10.0). If you cannot upgrade immediately, disable or restrict the terminal feature so untrusted or low-privileged users cannot invoke ws_terminal, and place the instance behind a reverse proxy that strips or overrides any inbound X-User-Id header rather than forwarding it upstream - the trade-offs are loss of terminal functionality for affected users and added proxy configuration overhead. For multi-tenant instances, limit the platform to trusted users until patched, since the identity-spoofing path only matters where multiple distinct user identities exist. The fix corresponds to commit 5f3a628 (PR #26042).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Open WebUI is a self-hosted, extensible AI/LLM front-end (Python FastAPI backend, Svelte frontend) that includes an interactive terminal feature. The vulnerability lives in the terminal proxy layer: the backend constructs the upstream WebSocket URL for ws_terminal by string-concatenating a session_id that is never URL-encoded, then appends the caller's user_id as a query-string parameter. An attacker-controlled session_id containing URL delimiters (e.g. '&' or an additional 'user_id=' pair) therefore performs classic query-parameter injection, causing the backend to parse an attacker-chosen user_id and bind the terminal to another identity. Compounding this, the parallel HTTP proxy path forwards an X-User-Id header treated as a trusted identity claim without any cryptographic or session binding. This is a CWE-287 (Improper Authentication) issue - identity is derived from client-supplied, unauthenticated request data rather than a verified server-side session.
Know when Open Webui gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H
Network-reachable identity spoof needing a low-privileged account (PR:L) and non-trivial injection crafting (AC:H); crossing into another user's identity is a scope change (S:C) with full C/I/A impact on the victim's terminal session.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. Prior to 0.10.0, backend/open_webui/routers/terminals.py built the ws_terminal upstream URL from an unencoded session_id and appended user_id as a query parameter, allowing query injection to make the terminal backend resolve another user identity; the HTTP proxy path also forwarded X-User-Id as an integrity-unbound identity claim. This issue is fixed in version 0.10.0.
Executive ViewAI
Open WebUI versions before 0.10.0 contain an identity spoofing vulnerability allowing authenticated users to hijack other users' terminal sessions and gain unauthorized access to sensitive operations. This creates immediate risk of lateral movement and credential exposure within organizations running vulnerable versions. Patching to v0.10.0 is critical to prevent session hijacking by internal or provisioned users.
Apply vendor patch (v0.10.0). Interim mitigations if deployment is delayed: disable WebSocket terminal functionality if operationally feasible, implement network-level access restrictions on terminal WebSocket connections, and enable detailed audit logging for all terminal session initiations.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Open Webui
View allAn XSS vulnerability exists in open-webui/open-webui versions <= 0.3.8, specifically in the function that constructs the
A Stored Cross-Site Scripting (XSS) vulnerability exists in the chat file upload functionality of open-webui/open-webui
Attacker controlled files can be uploaded to arbitrary locations on the web server's filesystem by abusing a path traver
Stored cross-site scripting in Open WebUI's terminal port preview feature allows an authenticated attacker sharing a ter
In version v0.3.10 of open-webui/open-webui, the `api/v1/utils/pdf` endpoint lacks authentication mechanisms, allowing u
OAuth and SCIM identity confusion in Open WebUI 0.6.41-0.10.x (SQLite-backed deployments only) allows unauthenticated re
DNS rebinding SSRF in Open WebUI versions 0.9.6 through 0.11.0 allows authenticated users who control authoritative DNS
Denial of service in Open WebUI versions 0.9.0-0.11.0 allows unauthenticated remote attackers to stall the application s
In version 0.3.8 of open-webui, an endpoint for converting markdown to HTML is exposed without authentication. Rated hig
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. [CVSS 7.3 HIGH]
Stored XSS in Open WebUI prior to version 0.7.0 allows authenticated users to inject malicious HTML payloads into chat d
Improper privilege management in Open WebUI 0.10.0 through 0.11.0 allows any authenticated low-privilege user with write
EUVD-2026-42636
GHSA-j657-m4c4-24jq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB