Skip to main content

Canonical LXD CVE-2025-54289

| EUVDEUVD-2025-32638 HIGH
Missing Origin Validation in WebSockets (CWE-1385)
2025-10-02 security@ubuntu.com GHSA-3g72-chj4-2228
7.4
CVSS 4.0 · Vendor: ubuntu
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with read-only LXD account
  2. Delivery
    Subscribe to operations events API
  3. Exploit
    Capture WebSocket secrets for victim session
  4. Execution
    Hijack terminal/console WebSocket
  5. Impact
    Execute 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – 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)
v1 Mar 13, 2026 - 19:12 CVSS 8.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

LXD 6 <6.5
LXD 5.21 <5.21.4

Affected Packages

go github.com/canonical/lxd fix: 0.0.0-20250827065555-0494f5d47e41, 5.21.4, 6.5
euvd lxd fix: 5.21.4, 6.5

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

Vendor (ubuntu) PRIMARY 7.4 HIGH
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
vuln.today AI 6.4 MEDIUM

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.

3.1 AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Ubuntu MEDIUM
SUSE 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

Primary rating from Vendor (ubuntu).

CVSS VectorVendor: ubuntu

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

5
CVSS changed
Oct 12, 2026 - 15:22 NVD
8.1 (HIGH) 7.4 (HIGH)
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
PoC Detected
Oct 24, 2025 - 14:34 vuln.today
Public exploit code
CVE Published
Oct 02, 2025 - 10:15 cve.org
HIGH 7.4
CVE Published
Oct 02, 2025 - 10:15 nvd
HIGH 8.1

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.0%
Top 88% exploitable
Prevalence
Medium
common container/VM manager in Ubuntu/cloud environments, not universally deployed
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

57
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

More in Lxd

View all
CVE-2025-54286 HIGH POC
7.5 Oct 02

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

CVE-2025-54293 HIGH POC
7.1 Oct 02

Authenticated remote attackers with access to the Canonical LXD instance log retrieval or deletion endpoints can read ar

CVE-2025-54287 HIGH POC
7.1 Oct 02

Server-side template injection in Canonical LXD's instance snapshot naming feature lets an authenticated user who can mo

CVE-2025-54290 MEDIUM POC
6.9 Oct 02

Unauthenticated project enumeration in Canonical LXD 5.21.x before 5.21.4 and 6.x before 6.5 lets remote attackers deter

CVE-2025-54291 MEDIUM POC
6.9 Oct 02

Unauthenticated remote attackers can confirm the existence of LXD projects on Canonical LXD by comparing HTTP status cod

CVE-2026-63294 CRITICAL
9.9 Aug 12

Privilege escalation to host root in Canonical LXD occurs when the container manager unpacks crafted image or backup arc

CVE-2026-66897 CRITICAL
9.9 Aug 24

Host root code execution in Canonical LXD arises from a path-traversal flaw in instance template processing, letting an

CVE-2026-63293 CRITICAL
9.9 Aug 12

Arbitrary host file read and write in Canonical LXD occurs because the image import/unpack routine does not verify wheth

CVE-2026-63298 CRITICAL
9.9 Aug 12

Canonical LXD's NVIDIA GPU passthrough configuration handler fails to sanitize newline characters in user-supplied `nvid

CVE-2026-66898 CRITICAL
9.9 Aug 12

Path traversal in Canonical's LXD container and VM manager allows a user with backup import/restore privileges to write

CVE-2026-62420 CRITICAL
9.9 Aug 12

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

CVE-2026-63300 CRITICAL
9.9 Aug 12

Project-confinement bypass in Canonical LXD lets an authenticated user holding can_create_instances on a restricted proj

Vendor StatusVendor

Ubuntu

Priority: Medium
lxd
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

incus
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 -
lxd
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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy