Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach network-exposed LXD HTTPS API
-
ExploitSend wildcard (%25) fingerprint export requests
-
ExecutionCompare 500 vs 404 error responses
-
ImpactEnumerate existing project names
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the LXD HTTPS REST API to be network-reachable (the images export endpoint at /1.0/images/{fingerprint}/export, e.g. on TCP 8443); the attacker then supplies a URL-encoded SQL LIKE wildcard (%25 = '%') as the fingerprint plus the 'secret' query parameter to force multiple image matches within a target project. No authentication or user interaction is needed. The key LIMITING factor is that LXD by default listens only on a local Unix socket and does not expose this API over the network - exploitation requires an operator to have enabled the HTTPS network listener (core.https_address), so default-installed hosts are not exposed. Affected versions are LXD 5.21.x before 5.21.4 and 6.0/6.x before 6.5 on Linux; impact is limited to confirming project existence (enumeration), not disclosing image or credential contents. |
| Impact | This is a low-to-moderate priority information disclosure issue, not a critical one, and the signals are mostly consistent. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N) confirms unauthenticated remote reachability with low attack complexity, but the only impact metric set is VC:L (low confidentiality) with VI/VA/SC/SI/SA all None - meaning the flaw leaks nothing beyond whether a named LXD project exists, matching CWE-200. The headline 6.9 score reflects the easy, unauthenticated vector rather than meaningful impact. EPSS is very low (0.09%, 26th percentile), indicating little expectation of mass exploitation, and the vulnerability is NOT in CISA KEV, so there is no evidence of active exploitation. Publicly available exploit code (the GHSA advisory includes working curl reproduction steps) raises the practical likelihood of opportunistic probing, but POC availability is distinct from active exploitation. The realistic risk is that this serves as a reconnaissance primitive (project-name enumeration via dictionary attack) that could precede a more serious attack, rather than a standalone high-impact bug. One important caveat: the CVSS vector implies exploitation against any network-reachable endpoint, but LXD does not expose its HTTPS API over the network by default - this materially limits real-world exposure and should be weighed against the AV:N rating. |
| Exploit ScenarioDerived | An attacker who can reach a network-exposed LXD HTTPS API (e.g. port 8443) sends unauthenticated requests to the image export endpoint using a URL-encoded wildcard fingerprint (%25) plus the secret parameter, then observes whether the server returns HTTP 500 ('More than one image matches') versus HTTP 404 ('not found'). By cycling candidate project names through this behavioral difference, the attacker enumerates which LXD projects exist. Publicly available exploit code with working curl commands exists, and the low attack complexity makes this trivial to script against any reachable instance. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 12, 2026
Unauthenticated project enumeration in Canonical LXD 5.21.x before 5.21.4 and 6.x before 6.5 lets remote attackers determine whether a specific project name exists by abusing inconsistent error handling in the image export API. Because the fingerprint path segment is matched against SQL LIKE wildcards, a request such as /1.0/images/%25/export?project=X returns HTTP 500 'More than one image matches' when the project exists but HTTP 404 when it does not, enabling dictionary-style brute forcing of project names. No authentication or user interaction is required (CVSS:4.0 PR:N/UI:N, independently assessed as CVSS:3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N), publicly available exploit code exists, and EPSS is low at 0.09% (26th percentile); impact is limited to confirming project existence rather than disclosing image or credential contents, and default installations that only bind the local Unix socket are not exposed.
Earlier versions of this analysis (1)
RemediationAI
Vendor-released patch: upgrade to LXD 5.21.4 for the 5.21 LTS line or LXD 6.5 for the 6.x line (snap users should refresh to the corresponding channel revision), and Go integrators should vendor the upstream fix commit 0494f5d47e41 (module pseudo-version 0.0.0-20250827065555-0494f5d47e41 or later) as tracked in GO-2025-4002. Debian users should apply DSA-6027-1 (security-tracker.debian.org/tracker/dsa-6027-1), and the full technical write-up is in the vendor advisory GHSA-p3x5-mvmp-5f35. Where patching cannot be done immediately, the most effective compensating control is to not expose the LXD HTTPS API at all: confirm that core.https_address is unset so LXD only listens on the local Unix socket, which removes the attack surface entirely because the enumeration oracle requires HTTP reachability to the images export endpoint. If remote API access is operationally required, restrict TCP 8443 (or the configured listener port) with host firewall rules or a reverse proxy that permits only trusted management networks, accepting the trade-off that this limits legitimate remote clients such as cluster members and automation. As a partial mitigation, audit and reduce the number of images per project or avoid sharing non-public images via the secret parameter, since the 500-vs-404 differential only appears when multiple images match, but note this is fragile because a single wildcard request can be retried as projects gain images. Because exploitation is unauthenticated and publicly available exploit code exists, teams exposing the API should treat project names as enumerable metadata and avoid relying on project name obscurity for access control.
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 Go-based system container and virtual machine manager, exposed through a REST API that by default listens only on a local Unix socket; the HTTP/HTTPS network listener is optional and enabled via the core.https_address configuration key (commonly on TCP 8443). This issue is a CWE-200 exposure of sensitive information caused by a behavioral differential in error handling rather than a memory-safety or injection flaw. In the affected code path (lxd/db/images.go), image fingerprints supplied in the URL are matched with SQL LIKE semantics, so a client can inject wildcards such as % (URL-encoded as %25) to match many images at once; when more than one image matches, the database layer's error is returned verbatim as an HTTP 500 ('More than one image matches'), whereas a nonexistent project yields zero matches and a clean HTTP 404 ('not found'). The unauthenticated attacker therefore distinguishes 'project exists but produced an ambiguous match' from 'project does not exist', converting a backend error-handling inconsistency into an oracle. The optional secret query parameter can be used to include non-public images in the search and increase the chance of triggering multiple matches. The vulnerability is tracked in the Go ecosystem advisory GO-2025-4002 for the github.com/canonical/lxd module, with the upstream fix landing in commit 0494f5d47e41. The CVSS:4.0 base score of 6.9 reflects network reachability with no privileges or user interaction, but the independent 3.1 assessment appropriately caps the impact at low confidentiality with no integrity or availability effect, so the practical consequence is enumeration metadata, not data exfiltration.
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:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Unauthenticated network request to the API (AV:N/AC:L/PR:N/UI:N); only project-existence leaks, so C:L with I:N and A:N and no scope change.
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Primary rating from Vendor (ubuntu).
CVSS VectorVendor: ubuntu
Lifecycle Timeline
5DescriptionCVE.org
Information disclosure in image export API in Canonical LXD before 6.5 and 5.21.4 on Linux allows network attackers to determine project existence without authentication via crafted requests using wildcard fingerprints.
Executive ViewAI
Organizations using image export API in Canonical LXD should be aware of moderate risk from CVE-2025-54290, a information exposure vulnerability rated CVSS 5.3. Sensitive information could be exposed to unauthorized parties. 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 endpoint access, redact sensitive data in logs.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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 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-200 – Information Exposure
View allSame technique Information Disclosure
View allVendor StatusVendor
Ubuntu
Priority: Medium| Release | Status | Version |
|---|---|---|
| jammy | DNE | - |
| noble | DNE | - |
| plucky | DNE | - |
| upstream | needs-triage | - |
| bionic | not-affected | see notes |
| focal | not-affected | installs LXD snap |
| xenial | not-affected | see notes |
| 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: Medium| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2025-32639
GHSA-p3x5-mvmp-5f35
NVD
CVE.org
EPSS
Exploit-DB