Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as project-restricted LXD client
-
DeliveryInitiate image/instance import request
-
ExploitReuse local fingerprint of another project's private image
-
ExecutionTrigger unauthorized cross-project image lookup
-
ImpactReceive and read other tenant's private image
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a multi-tenant LXD deployment using project isolation where the attacker holds a valid but project-restricted client credential (PR:L, not remote-unauthenticated). Exploitation is limited to image/instance import operations and depends on reusing the local fingerprint of a private image already cached in another project on the same host - a narrow, timing/state-dependent condition (AC:H). It only yields read access to other projects' private images (confidentiality); it does not grant authentication bypass, code execution, or write/DoS impact, and single-project or non-shared LXD hosts are not exposed. |
| Impact | This is a genuine but moderate-severity access-control flaw, not a critical one. The vendor CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N = 6.3) is internally consistent with the description: exploitation requires an already-authenticated, project-restricted client (PR:L), succeeds only under specific race/reuse conditions around fingerprint reuse during import (AC:H), crosses a project trust boundary (S:C), and leaks confidential image contents with no integrity or availability impact (C:H/I:N/A:N). No EPSS score, no CISA KEV listing, and no public POC were provided, so all three exploitation-likelihood signals are absent - meaning no public exploit identified at time of analysis. The combination of high attack complexity, required prior authentication, and the narrow, information-disclosure-only impact (private images from other projects on the same LXD host) places this firmly in the 'real but low-urgency' band rather than a high-CVSS-but-hollow issue or an emergency. Note the CVSS is vendor/Canonical self-assessed; the AC:H rating hinges on the fingerprint-reuse timing described, which is plausible given the patch adds explicit cached-image source binding and TOCTOU-safe file handling. |
| Exploit ScenarioDerived | An attacker who already holds a project-restricted LXD client credential on a shared multi-tenant LXD host triggers an image or instance import and supplies (or races) a fingerprint that matches a private image already cached in another project. Because LXD's imageDownload path resolved the fingerprint against any project without authorization, the attacker's project receives a record and file for the other tenant's private image, disclosing its contents. No public exploit code was identified, and success depends on the high-complexity fingerprint-reuse timing described by the vendor. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 28, 2026
Canonical LXD before 5.0.10, 5.21.8, and 6.10 lets a project-restricted client read its own private images from other projects through local fingerprint reuse during image or instance import requests. The flaw is a missing-authorization condition (CWE-862) graded CVSS 6.3 (AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N), meaning an attacker needs a valid but low-privileged credential and a multi-tenant deployment where a private image is already cached locally by another project; impact is limited to confidentiality of other projects' image content, with no code execution, write, or denial-of-service effect. No public exploit code or confirmed active exploitation was identified at time of analysis, and vendor patches are available. This is a genuine but moderate-severity project-isolation weakness rather than a critical one, and single-project or non-shared LXD hosts are not exposed.
RemediationAI
Upgrade to a vendor-released patched version: LXD 5.0.10 (5.0 LTS), 5.21.8, or 6.10, per Canonical's advisory GHSA-j7p3-5g2v-69j8; the fixes are distributed across the branch pull requests 19001, 19002, 19003, and 18987 and also correct related image-download and deduplication handling, so partial backporting of a single commit is not recommended. Where immediate upgrade is not possible, the most effective compensating control is to avoid co-locating mutually untrusted projects on the same LXD host or cluster member, since the attack depends on a private image from one project already being present in the local image cache - the trade-off is reduced tenant density and the need for separate hosts per trust boundary. A narrower interim measure is to restrict which clients hold project-restricted credentials capable of triggering image or instance imports, and to set images as public only when cross-project visibility is genuinely intended, accepting that this limits legitimate image-sharing workflows and does not fully remove the flaw for fingerprints that remain guessable. Clearing or isolating local image caches between trust domains can reduce exposure but is operationally disruptive because it forces re-download of images and increases pull latency and external registry load. Because exploitation requires only a low-privileged credential and leaves no write or execution trace, rely on the version upgrade rather than detection; single-project and non-shared deployments can be treated as lower priority for emergency action.
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 is Canonical's system container and virtual machine manager, and its image subsystem stores downloaded images as content-addressed files keyed by a SHA-256 fingerprint inside the daemon's image store, with per-project database records tracking ownership, visibility (public/private), and source. In the vulnerable flow, lxd/daemon_images.go incorrectly treated a project-scoped image lookup failure as a signal to fall back to a cross-project lookup (GetImageFromAnyProject), so a project-restricted client supplying a known or guessable fingerprint during image or instance import could resolve to a private image record belonging to a different project and receive image metadata/content. The root cause is CWE-862 Missing Authorization: the daemon did not verify that the requesting project was entitled to the image before serving the locally cached copy. The upstream fix narrows the fallback to cached images whose source (server, protocol, alias, certificate) matches exactly via GetCachedImageWithSource, and explicitly overwrites all image fields - fingerprint, filename, size, public flag, autoupdate, architecture, timestamps, properties, and type - with values from the client's own image source so no attributes leak from the foreign project. The patches additionally rework download-to-temp-file and rename logic to prevent corruption when re-downloading or deduplicating an image that already exists on disk. Because fingerprints are derived from image content and are reused across projects on the same host, the isolation boundary depends entirely on the daemon's authorization checks rather than on any per-project secret.
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:L/UI:N/S:C/C:H/I:N/A:N
Authenticated project-restricted client (PR:L) exploiting a narrow fingerprint-reuse condition (AC:H) crosses the project trust boundary (S:C) to read private images (C:H), with no integrity or availability impact.
Primary rating from Vendor (canonical).
CVSS VectorVendor: canonical
DescriptionCVE.org
Missing Authorization in imageDownload in Canonical LXD before 5.0.10, 5.21.8, and 6.10 on Linux allows a project-restricted client to access private images from other projects via local fingerprint reuse during image or instance import requests.
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
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-88256
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB