Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with read-only LXD account
-
DeliverySubscribe to operations events API
-
ExploitCapture WebSocket secrets for victim session
-
ExecutionHijack terminal/console WebSocket
-
ImpactExecute commands with victim privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2021 - Vulnerable and Outdated Components
ASVS 5.0
V15 - Secure Coding and Architecture Hardware safety mechanism
|
| Exploitation Conditions | Exploitation requires (1) an authenticated account with at least read permissions on the target LXD server, and (2) another user concurrently opening a terminal or console (exec) session, because the attack hijacks the secret 'fds' values that LXD's operations API (/1.0/operations/{id}/websocket and /1.0/events) exposes for those running operations. The specific weakness is that terminal/console WebSocket authentication secrets are returned in operation metadata readable by read-only principals (CWE-1385). Limiting factors: no code execution occurs unless a victim session exists to hijack (AT:P/UI:P), the attacker must already hold a valid read account (PR:L, not anonymous), success depends on timing against another user's session (AC:H), and it is fixed in LXD 5.21.4 and 6.5 - unaffected deployments are those patched or not using interactive terminal/console sessions. |
| Impact | Signals point consistently to a real-but-moderate, non-urgent priority rather than a mass-exploitation threat. The CVSS 4.0 base score is 7.4 (High), but the vector itself tempers this: AC:H and AT:P (passive attack requirement) plus UI:P mean exploitation depends on timing a victim's action, and PR:L confirms the attacker already needs a valid - if only read-scoped - account on the LXD instance. EPSS is very low (0.04%, 12th percentile), indicating no statistical signal of widespread exploitation attempts, and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation. A public POC does exist (a browser-DevTools JavaScript snippet in the GHSA advisory), which lowers the skill barrier, but POC availability is a distinct signal from active exploitation and should not be conflated with it. The low EPSS is coherent with (not contradicted by) the preconditions: the attacker must have an authenticated read account AND a victim must concurrently open a terminal/console session, which makes this better suited to targeted insider/lateral-movement scenarios than opportunistic internet-wide scanning. Net: a legitimate privilege-escalation issue worth patching on normal cycles, not a drop-everything emergency. |
| Exploit ScenarioDerived | A low-privilege user with only read permissions on an LXD deployment (e.g., via LXD-UI) runs attacker-supplied JavaScript that subscribes to the /1.0/events operations stream, harvests the WebSocket secret values exposed for terminal/console operations, and opens its own WebSocket to a session another user has just started. A working POC exists in the vendor GHSA advisory demonstrating injection of a command (e.g., 'touch /tmp/xxx') into the hijacked data channel. Because AC:H/AT:P/UI:P apply, success requires catching a victim-initiated session, so exploitation is opportunistic on timing rather than reliably on-demand. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 12, 2026
Privilege escalation in Canonical LXD's operations API (LXD before 6.5 and LXD 5.21 before 5.21.4) allows an authenticated user who holds only read permissions to hijack a terminal or console WebSocket session opened by another user and execute arbitrary commands with that victim's privileges. Publicly available exploit code exists (a JavaScript proof-of-concept published with the GHSA advisory), and exploitation requires a concurrently active exec session to hijack, so conditions are timing-dependent rather than trivially repeatable. The issue is not listed in CISA KEV, and EPSS is low at 0.04% (12th percentile), indicating no observed mass exploitation; vendor-released fixes are available in 5.21.4 and 6.5.
Earlier versions of this analysis (1)
RemediationAI
Upgrade to a fixed release: Canonical LXD 6.5 or later for the 6.x line, and LXD 5.21.4 or later for the 5.21 line (the Go module github.com/canonical/lxd is fixed in 5.21.4, 6.5, and pseudo-version 0.0.0-20250827065555-0494f5d47e41); Debian users should apply DSA-6027-1 and review the Debian security tracker entry, while Ubuntu users should take the updated packages for their tracked releases. Where immediate patching is not possible, the highest-value compensating control is to stop granting read-only or otherwise untrusted LXD-UI/API accounts on servers that run interactive terminal or console sessions - the attack fundamentally depends on a low-privileged read principal existing alongside a victim exec session, so removing that population removes the exposure, at the cost of losing delegated read/monitoring access. Restricting network access to the LXD API port (default 8443) and LXD-UI to trusted administrators reduces the attack surface but does not fix the underlying secret disclosure, and disabling LXD-UI or the operations/events API for non-admin users trades away observability tooling. Patching remains the only complete fix, since the defect is in how the operations API returns WebSocket session secrets rather than in a configurable setting.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
LXD is Canonical's system container and virtual machine manager, exposing a REST API over HTTPS (commonly port 8443) plus a WebSocket channel for interactive terminal and console (exec) sessions. Authentication for those WebSocket sessions relies on short-lived secret values ('fds' metadata) that are generated when an operation starts. The flaw, classified as CWE-1385 (Missing Origin Validation in WebSockets), is that these WebSocket authentication secrets are returned in the operations API responses (for example via /1.0/operations and the /1.0/events?type=operation stream) to any principal with read permission, rather than being scoped to the session owner or validated against an authenticated origin. An attacker subscribes to the operation event stream, captures the operation ID and secret/control values for a victim's exec session, then opens its own WebSocket to /1.0/operations/{id}/websocket with the stolen secret and injects keystrokes into the data channel. The affected Go module is github.com/canonical/lxd (>=4.0, <5.21.4 and >=6.0, <6.5, plus the development pseudo-version before 0.0.0-20250827065555-0494f5d47e41). Our independent assessment scores this CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N - network-reachable, but high attack complexity and required user interaction because a victim session must exist, and confidentiality and integrity are both highly impacted while availability is not.
Know when Lxd 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable API but requires a read-scoped account (PR:L) and a victim opening a session (AC:H, UI:R); hijack yields command execution with victim privileges, so C:H/I:H and A:N.
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Primary rating from Vendor (ubuntu).
CVSS VectorVendor: ubuntu
Lifecycle Timeline
5DescriptionCVE.org
Privilege Escalation in operations API in Canonical LXD <6.5 on multiple platforms allows attacker with read permissions to hijack terminal or console sessions and execute arbitrary commands via WebSocket connection hijacking format
Executive ViewAI
CVE-2025-54289 presents notable security risk rated CVSS 8.1. Successful exploitation could significantly impact the confidentiality, integrity, or availability of affected systems. Proof-of-concept code is publicly available, increasing the risk of exploitation. Organizations should apply vendor updates when available and consider compensating controls in the interim.
Apply vendor patch. If immediate patching is not feasible: (1) Implement network-level access controls to limit exposure; (2) Enable enhanced monitoring and alerting; (3) Apply principle of least privilege.
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Cross-site request forgery in the LXD-UI component of Canonical LXD 5.0 before 5.0.5, 5.1 before 5.21.4, and 6.0 before
Authenticated remote attackers with access to the Canonical LXD instance log retrieval or deletion endpoints can read ar
Server-side template injection in Canonical LXD's instance snapshot naming feature lets an authenticated user who can mo
Unauthenticated project enumeration in Canonical LXD 5.21.x before 5.21.4 and 6.x before 6.5 lets remote attackers deter
Unauthenticated remote attackers can confirm the existence of LXD projects on Canonical LXD by comparing HTTP status cod
Privilege escalation to host root in Canonical LXD occurs when the container manager unpacks crafted image or backup arc
Host root code execution in Canonical LXD arises from a path-traversal flaw in instance template processing, letting an
Arbitrary host file read and write in Canonical LXD occurs because the image import/unpack routine does not verify wheth
Canonical LXD's NVIDIA GPU passthrough configuration handler fails to sanitize newline characters in user-supplied `nvid
Path traversal in Canonical's LXD container and VM manager allows a user with backup import/restore privileges to write
Authorization bypass in Canonical LXD (6.0 before 6.10, 5.21.x before 5.21.6, 5.0.x before 5.0.8) lets an authenticated
Project-confinement bypass in Canonical LXD lets an authenticated user holding can_create_instances on a restricted proj
Same weakness CWE-1385 – Missing Origin Validation in WebSockets
View allSame technique Privilege Escalation
View allVendor StatusVendor
Ubuntu
Priority: Medium| Release | Status | Version |
|---|---|---|
| jammy | DNE | - |
| noble | DNE | - |
| plucky | DNE | - |
| upstream | needs-triage | - |
| bionic | ignored | backporting risks regressions |
| focal | not-affected | installs LXD snap |
| xenial | ignored | backporting risks regressions |
| questing | DNE | - |
Debian
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| trixie | fixed | 6.0.4-2+deb13u1 | - |
| trixie (security) | fixed | 6.0.4-2+deb13u4 | - |
| forky, sid | fixed | 6.0.5-8 | - |
| (unstable) | fixed | 6.0.5-1 | - |
| Release | Status | Fixed Version | Urgency |
|---|---|---|---|
| bookworm | vulnerable | 5.0.2-5+deb12u2 | - |
| bookworm (security) | vulnerable | 5.0.2-5+deb12u3 | - |
| trixie | vulnerable | 5.0.2+git20231211.1364ae4-9+deb13u2 | - |
| trixie (security) | vulnerable | 5.0.2+git20231211.1364ae4-9+deb13u3 | - |
| (unstable) | fixed | (unfixed) | - |
SUSE
Severity: High| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2025-32638
GHSA-3g72-chj4-2228
NVD
CVE.org
EPSS
VulDB
Exploit-DB