Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to LXD API or LXD-UI
-
ExploitCraft log filename with traversal or symlink
-
ExecutionBypass validLogFileName validation via filepath.Join normalization
-
ImpactRead arbitrary root-owned host files
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated LXD account with access to the instance log retrieval/deletion endpoints (reachable via the LXD API or LXD-UI). The attacker supplies a log filename beginning with the snapshot_ or migration_ prefix whose trailing portion is insufficiently validated by validLogFileName in lxd/instance_logs.go, or a symbolic link; traversal succeeds specifically because Go's filepath.Join normalizes the path before kernel-level path checks would reject it. Exploitation is LIMITED to the LXD 5.0 LTS series and versions below 5.21.4 (6.x below 6.5); it needs valid authentication (PR:L, no unauthenticated path) but no user interaction, and the root-privileged daemon means successful reads expose any host file. |
| Impact | This is a genuine but moderate-priority issue, not a top-tier emergency. The CVSS 4.0 base score of 7.1 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N) reflects a network-reachable, low-complexity attack that nonetheless requires authentication (PR:L) and yields confidentiality-only impact (arbitrary host file read, no integrity or availability loss). Multiple signals point AWAY from mass exploitation: EPSS is very low at 0.07% (20th percentile), and the CVE is NOT listed in CISA KEV, indicating no confirmed active exploitation. Counterbalancing this, a public proof-of-concept with full reproduction steps exists in the Canonical GHSA advisory, lowering the skill barrier. The requirement for a valid authenticated LXD account (LXD-UI or API access) is the key risk-limiter - this is a privilege-escalation/information-disclosure flaw usable by an already-trusted-but-restricted user, not an unauthenticated internet-facing RCE. Note a data tension worth verifying: the public description scopes the flaw to 'LXD 5.0 LTS,' while the EUVD/Go vulnerability database list the vulnerable ranges as >=4.0 <5.21.4 and >=6.0 <6.5 - the GHSA further states no dedicated security patch was backported to LXD 5.0 and earlier, so 5.0 LTS operators may remain exposed despite fixes existing in 5.21.4/6.5. Overall: a real, patch-worthy flaw for anyone running multi-tenant or restricted-user LXD, but low likelihood of opportunistic widespread exploitation. |
| Exploit ScenarioDerived | An attacker holding a restricted but authenticated LXD account (for example a limited LXD-UI user) sends a crafted instance log-retrieval request whose filename abuses the snapshot_/migration_ prefix handling or a symbolic link to traverse out of the log directory. Because Go's filepath.Join normalizes the path before OS-level checks apply, the traversal succeeds and the root-privileged LXD daemon returns arbitrary host files such as /etc/shadow or TLS keys. A public proof-of-concept with step-by-step reproduction (including a browser DevTools script against LXD 5.0) is published in the Canonical GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 12, 2026
Authenticated remote attackers with access to the Canonical LXD instance log retrieval or deletion endpoints can read arbitrary files on the host through a path traversal flaw (CWE-22) in the validLogFileName validation routine used by the LXD 5.0 LTS series. Exploitation requires a valid LXD account (CVSS PR:L, no user interaction), and because the daemon runs with root privileges, successfully read files can include any host file readable by root; publicly available exploit code exists and the issue is reachable through the LXD API or the LXD-UI. The defect is corrected in LXD 5.21.4 and 6.5, but the upstream fix (PR #15022) was aimed at code cleanup and no dedicated security patch was issued for the 5.0 LTS branch, so 5.0 LTS deployments remain affected; EPSS is low at roughly 0.07% (20th percentile) and there is no CISA KEV confirmation of active exploitation.
Earlier versions of this analysis (1)
RemediationAI
The primary fix is to upgrade to a patched release: LXD 5.21.4 or later for the 5.2x line, or LXD 6.5 or later for the 6.x line, as documented in the GitHub security advisory https://github.com/canonical/lxd/security/advisories/GHSA-472f-vmf2-pr3h and implemented by PR https://github.com/canonical/lxd/pull/15022; Debian users should apply DSA-6027-1 and DSA-6028-1 (see https://security-tracker.debian.org/tracker/dsa-6027-1). Because LXD 5.0 LTS received no dedicated security backport, organizations pinned to 5.0 LTS must either migrate to a supported patched series or, if that is not immediately possible, apply compensating controls: restrict who can reach the instance log endpoints by tightening LXD API authorization and project/instance access so that only fully trusted administrators hold accounts capable of invoking the log retrieval and deletion routes (this removes the attack path entirely but reduces operational flexibility for delegated operators), and avoid exposing the LXD-UI or the LXD REST API to untrusted networks, placing them behind mutual-TLS or a management-only network segment (this limits exposure but is bypassed by any attacker who already holds valid credentials). Monitoring LXD audit logs for log-retrieval requests whose filenames contain encoded traversal or unusual prefixes can provide detection, though it does not prevent successful reads by an authorized-but-malicious user. Note that the upstream fix was made incidentally during a code-quality change, so verifying the exact released version rather than a commit hash is essential before treating a deployment as remediated.
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
The root cause is a path traversal (CWE-22) in the log filename validation logic of lxd/instance_logs.go. In the vulnerable 5.0 LTS code, validLogFileName accepts filenames that begin with the snapshot_ or migration_ prefixes but performs insufficient validation of the trailing portion, allowing sequences such as '../' to be smuggled through. Traversal succeeds specifically because the Go implementation calls filepath.Join, which normalizes the path before it reaches the kernel, defeating the OS-level rejection that would normally block paths like /not_exist_folder/../exist_folder/. The fixed implementation routes filenames through shared.IsFileName and rejects any name containing '/', '\', or '..', and the broader PR #15022 also tightened name validation for projects, cluster groups, and instance references. The affected packages are the Go module github.com/canonical/lxd (vulnerable >= 4.0, < 5.21.4 and >= 6.0, < 6.5, fixed in 5.21.4 and 6.5), corresponding to the CPE canonical:lxd entries; the code paths of concern are instanceLogGet and instanceLogDelete, which both rely on the flawed validator.
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:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Remote LXD API access requires a valid authenticated account (PR:L) with low complexity; arbitrary host file read gives high confidentiality only, with no integrity or availability impact.
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Primary rating from Vendor (ubuntu).
CVSS VectorVendor: ubuntu
Lifecycle Timeline
6DescriptionCVE.org
Path Traversal in the log file retrieval function in Canonical LXD 5.0 LTS on Linux allows authenticated remote attackers to read arbitrary files on the host system via crafted log file names or symbolic links.
Executive ViewAI
CVE-2025-54293 presents notable security risk, a path traversal vulnerability rated CVSS 6.5. This could allow unauthorized file access. Proof-of-concept code is publicly available. Organizations should apply vendor updates when available and monitor for exploitation.
Apply vendor patch. If patching is delayed: restrict file access via WAF, implement allowlists.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
Privilege escalation in Canonical LXD's operations API (LXD before 6.5 and LXD 5.21 before 5.21.4) allows an authenticat
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-22 – Path Traversal
View allSame technique Path Traversal
View allVendor StatusVendor
Ubuntu
Priority: Medium| Release | Status | Version |
|---|---|---|
| xenial | needs-triage | - |
| bionic | needs-triage | - |
| focal | needs-triage | - |
| jammy | DNE | - |
| noble | DNE | - |
| plucky | DNE | - |
| upstream | needs-triage | - |
| 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 | fixed | 5.0.2-5+deb12u1 | - |
| bookworm (security) | fixed | 5.0.2-5+deb12u3 | - |
| trixie | fixed | 5.0.2+git20231211.1364ae4-9+deb13u1 | - |
| trixie (security) | fixed | 5.0.2+git20231211.1364ae4-9+deb13u3 | - |
| (unstable) | fixed | (unfixed) | - |
SUSE
Severity: Medium| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2025-32640
GHSA-472f-vmf2-pr3h
NVD
CVE.org
EPSS
Exploit-DB