Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker controls or MitM-intercepts an LXD image server
-
DeliveryVictim runs lxc image export/copy to local dir
-
ExploitServer sends crafted Content-Disposition traversal filename
-
ExecutionClient writes file outside target directory
-
PersistOverwrite of sensitive path (e.g. /etc/cron.d)
-
ImpactCode execution on client host
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 | Exploitation requires the victim to actively run an LXD CLI image export or copy operation ( |
| Impact | This is a low-to-moderate real-world risk that is correctly rated by its modest CVSS 3.1 base score of 4.2, and the score reflects genuine exploitation friction rather than under-scoring. The CVSS vector (AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L) captures a reverse-trust flaw: the 'attacker' is not a client-side threat actor but a malicious or man-in-the-middle IMAGE SERVER that the LXD client connects to. AC:H reflects that the attacker must control (or intercept, via TLS/transport interception) the remote image server, and UI:R reflects that the victim must voluntarily initiate an image export or copy into a local directory. There is no EPSS, no CISA KEV listing, and no packaged public exploit - so exploitation status is 'no public exploit identified at time of analysis' - though the vendor's own fix PR#18977 ships regression tests demonstrating the exact traversal vectors (/etc/cron.d/evil.tar.gz, ../../evil.tar.gz), which effectively documents the technique. I disagree modestly with the vendor's I:L/A:L impact rating: the described primitive is arbitrary local file OVERWRITE leading to code execution on the client (e.g. dropping a crontab or shell profile), which is closer to I:H and could cascade to full client compromise; this is a point to verify against the vendor advisory. Net: not a fleet-wide fire drill, but relevant to anyone whose CI/automation pulls LXD images from untrusted or network-adjacent-interceptable servers. |
| Exploit ScenarioDerived | An attacker stands up (or MitM-intercepts) an LXD image server and waits for a victim to run |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 28, 2026
Path traversal in the Canonical LXD CLI image export and copy code (client/lxd_images.go) lets a malicious or machine-in-the-middle image server steer the filename used for a downloaded image outside the local destination directory via a crafted Content-Disposition header, allowing arbitrary local file overwrite that can lead to code execution as the invoking user. Affected releases are LXD 4.0.2 through 4.0.13, 5.0.x before 5.0.10, 5.21.x before 5.21.8, and 6.x before 6.10; exploitation requires the victim to actively run lxc image export or lxc image copy into a local directory while pulling from an attacker-controlled or intercepted remote (CVSS 3.1 base 4.2, AV:N/AC:H/PR:N/UI:R, unauthenticated network attacker but with required user interaction). No public exploit code has been identified at time of analysis, and the issue is publicly documented with vendor-released patches and upstream pull requests already merged.
RemediationAI
Upgrade the LXD client to a patched release: 4.0.14 or later on the 4.0 LTS track, 5.0.10 or later on 5.0, 5.21.8 or later on 5.21, and 6.10 or later on 6.x; the corresponding upstream fixes are the merged pull requests https://github.com/canonical/lxd/pull/18977, https://github.com/canonical/lxd/pull/18976, https://github.com/canonical/lxd/pull/18975, https://github.com/canonical/lxd/pull/18974, and https://github.com/canonical/lxd/pull/18940, with details in the vendor advisory GHSA-g4cm-f533-78hq. Where upgrading is not immediately possible, the most effective compensating control is to run image export and copy operations only against trusted first-party or self-hosted image servers over verified TLS and to avoid treating third-party remotes as trusted during export/copy - this removes the hostile-server precondition but prevents legitimate use of untrusted remotes; additionally, exporting or copying into a dedicated, empty scratch directory (and never into directories holding sensitive write targets such as /etc/cron.d, ~/.ssh, ~/.config/autostart, or shell rc files) limits the impact of a redirected write at the cost of a more constrained workflow, and validating the TLS certificate and server identity of the image remote reduces MITM exposure but does not protect against a legitimately remote-but-malicious server. Neither workaround is a substitute for applying the vendor patch, which is a one-line basename sanitization of the Content-Disposition filename in the client.
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
LXD images can be transferred in two forms the client understands: a 'unified' single-file tarball and a 'split' format delivered as a multipart body containing separate metadata and rootfs parts. When the CLI downloads such an image (CWE-22, path traversal), the Go client code in client/lxd_images.go took the filename supplied by the remote server in the HTTP Content-Disposition header and assigned it to the response metadata name without sanitization, then used it when writing the file to the user-selected destination directory. Because the filename parameter can contain an absolute path (for example /etc/cron.d/evil.tar.gz) or relative traversal sequences (../../evil.tar.gz), a hostile or intercepted image server can redirect writes outside that directory. The upstream fix is minimal and targeted: the client now applies filepath.Base() to the server-provided name before use, collapsing any directory components to a bare basename, and the accompanying tests exercise unified and split responses with absolute paths, relative traversals, and trailing slashes. The affected component is the LXD client/CLI on all platforms, not the LXD server; the CPE identifier for the affected package is cpe:2.3:a:canonical:lxd:*:*:*:*:*:*:*:*.
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
AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L
Malicious/MitM image server (AV:N, AC:H) plus victim-initiated export (UI:R); arbitrary local file overwrite enabling code execution is I:H, no read primitive so C:N, incidental A:L.
Primary rating from Vendor (canonical).
CVSS VectorVendor: canonical
DescriptionCVE.org
Path traversal in the CLI client image export and copy functionality in Canonical LXD from 4.0.2 before 4.0.14, 5.0.10, 5.21.8, and 6.10 on all platforms allows a remote malicious or machine-in-the-middle image server to overwrite arbitrary local files and execute code on the client system via a crafted Content-Disposition header filename parameter during unified image export or copy operations into a local directory target.
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
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
EUVD-2026-88255
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB