Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged XO user
-
ExploitCall user.set with victim's user id
-
ExecutionDelete preferences.otp or overwrite xsCredentials/sshKeys
-
ImpactDisable victim 2FA and hijack account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires a valid authenticated session as any low-privileged Xen Orchestra user on a version before 6.9.0 - this is the sole prerequisite and is confirmed by PR:L in the CVSS vector. No special configuration, feature flag, or non-default deployment mode is needed: the user.set API method simply omitted the ownership check, so exploitation works against default configurations by supplying an arbitrary target user id. Limiting factors: the attacker must already hold credentials for the XO instance (no unauthenticated path), and impact is confined to modifying other users' preference data (TOTP secret, xsCredentials, sshKeys) rather than direct data exfiltration; no user interaction by the victim is required. |
| Impact | This is a post-authentication authorization bypass (CWE-639) rated CVSS 5.3/medium. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L) is internally consistent with the description: network-reachable, low attack complexity, requires a low-privileged authenticated session (PR:L - so NOT unauthenticated), no user interaction, no confidentiality loss, and limited integrity/availability impact. No EPSS score, KEV listing, or POC indicator was supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The headline numeric score understates practical impact in one respect: the ability to delete another user's preferences.otp TOTP secret effectively disables that victim's 2FA and, combined with overwriting stored xsCredentials/sshKeys, can facilitate downstream account compromise - an integrity consequence the VC:N/VI:L rating treats conservatively. Net assessment: a genuine but second-stage risk requiring a pre-existing foothold, worth prioritizing on multi-user Xen Orchestra instances yet not an internet-wide emergency given the authentication prerequisite and absence of exploitation signals. |
| Exploit ScenarioDerived | A low-privileged but authenticated Xen Orchestra user invokes the xo-server user.set API, passing an administrator's user id as the target instead of their own. Because the pre-6.9.0 code never checked that the id matched the caller, the attacker deletes the admin's preferences.otp value to strip two-factor authentication, or overwrites the admin's stored xsCredentials and sshKeys. No public exploit code is identified, but the flaw is a trivial API parameter manipulation requiring no special tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Authenticated low-privileged users of Xen Orchestra before 6.9.0 can modify other accounts' stored preferences - deleting the preferences.otp TOTP secret to silently strip two-factor authentication, corrupting it to lock the victim out, or overwriting stored xsCredentials and sshKeys - because the xo-server user.set API method accepted an arbitrary target user id without verifying ownership. The flaw is a CWE-639 authorization bypass (CVSS 5.3, PR:L, no user interaction) reachable over the network, with integrity and availability impact confined to other users' preference data and no confidentiality impact; no public exploit code has been identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade Xen Orchestra to 6.9.0 or later, which enforces that a non-administrative caller may only modify its own record; if you build from source, the corresponding upstream fix is commit 3dbf8738f1e682b96ade2074dc84bee02a0c2d48 and the advisory is GHSA-mc4m-hc98-rhmv (https://github.com/vatesfr/xen-orchestra/security/advisories/GHSA-mc4m-hc98-rhmv). Because Exploitation requires only any valid low-privileged session, reducing the number of XO accounts and removing stale or unused ones shrinks the attack surface; until patched, restrict network access to the xo-server HTTP/HTTPS API (typically 80/443) to trusted management networks or VPN via firewall or reverse-proxy ACLs, accepting that this also blocks legitimate remote users. Enforce the second factor outside XO - for example TOTP or SSO at a reverse proxy or identity provider in front of the UI - so that deletion of preferences.otp does not actually remove the second factor, though this does not protect API-token or direct API access. Hunt xo-server audit/HTTP logs for user.set calls whose id differs from the authenticated principal, treating such events as attempted exploitation; this is detective only and does not prevent the write. If compromise is suspected, have affected users reset their XO passwords and rotate the xsCredentials and sshKeys values stored in their XO preferences, since the same flaw allows those to be silently overwritten.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Xen Orchestra is Vates' web management platform for XenServer/XCP-ng pools, split into the Node.js xo-server backend and the xo-web front end. Its API methods are defined in packages/xo-server/src/api/*.mjs, where each method receives a params object and can declare resolve entries; the calling identity is available as this.apiContext.user. The user.set method (packages/xo-server/src/api/user.mjs, around lines 73-93) takes an id parameter and writes fields such as email, firstname, lastname, password, permission and preferences onto the user record it looks up from that id. The only ownership check present was an administrative branch: a non-admin caller fell through and the target user object was modified regardless of whether id matched the caller. CWE-639 (Authorization Bypass Through User-Controlled Key, i.e. IDOR) captures the root cause: a security decision keyed on a client-supplied identifier that is never validated against the requester's own identity. Because the writable surface includes the preferences blob, an attacker with any valid session can delete or corrupt preferences.otp (the TOTP seed used for XO's two-factor authentication, disabling or locking out the victim's login) and can overwrite xsCredentials and sshKeys entries persisted for that user. The upstream fix commit 3dbf8738f1e682b96ade2074dc84bee02a0c2d48 adds } else if (id !== this.apiContext.user.id) { throw invalidParameters('a user can only change its own properties') }, and the same commit also tightened permission resolution on importFromEsxi/importMultipleFromEsxi and switched a permission check to Object.hasOwn; that commit additionally contains unrelated prototype-pollution hardening in @xen-orchestra/vmware-explorer (UNSAFE_KEYS in the vmsd/vmx/SOAP parsers), which is a separate issue from this CVE and should not be conflated with the authorization bypass.
Know when the next one hits your stack
- 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Authenticated low-priv user (PR:L) exploits a missing ownership check over the network (AV:N/AC:L/UI:N); modifies but does not read other users' data, giving C:N and limited I:L/A:L.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Xen Orchestra before 6.9.0 contains an authorization bypass vulnerability in the xo-server user.set API method that allows low-privileged authenticated users to modify other users' preferences by supplying an arbitrary target user id. Attackers can delete the preferences.otp TOTP secret to disable two-factor authentication, corrupt it to block logins, or overwrite stored xsCredentials and sshKeys.
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.
EUVD-2026-105088
GHSA-22x8-669x-gh7m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB