Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach network-exposed LXD images API
-
ExploitSend requests with crafted project parameter
-
ExecutionCompare 404 vs 403 status codes
-
ImpactEnumerate existing project names
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error message sanitization
MITRE ATT&CK
1 technique across 1 tactic: Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The /1.0/images endpoint is explicitly an AllowUntrusted LXD API requiring no authentication, so no special application configuration is needed once the API is reachable - the leak occurs against default handling of the project query parameter. The key limiting factor is network exposure: LXD by default listens only on a local Unix socket, so the HTTPS API (typically port 8443) must have been deliberately enabled via core.https_address for a remote attacker to reach it. Exploitation is therefore unauthenticated and low-complexity where the network API is exposed, but confined to confirming project existence (a reconnaissance oracle) with no access to private data; affected versions are LXD >=5.21 <5.21.4 and >=6.0 <6.5. |
| Impact | This is a low-severity information disclosure issue despite its CVSS 4.0 base score of 6.9. The signals are largely consistent in pointing to limited real-world risk: the EPSS probability is just 0.09% (25th percentile), the vulnerability is NOT in CISA KEV (no confirmed active exploitation), and the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N) correctly reflects a network-reachable, unauthenticated flaw whose only impact is LOW confidentiality - leakage of project-existence metadata, not credentials, code execution, or data. A public proof-of-concept exists (the GHSA advisory contains full curl reproduction steps), which raises ease-of-use, but POC availability is a distinct signal from active exploitation and should not be conflated with it. The one caveat worth flagging: the 6.9 base score overstates practical priority because exploitation yields only an oracle for project names - valuable for reconnaissance but not directly impactful. Treat this as a reconnaissance/information-leak hygiene fix to schedule with normal patch cycles, not an emergency. |
| Exploit ScenarioDerived | An unauthenticated attacker who can reach a network-exposed LXD HTTPS API sends requests to the /1.0/images endpoint with a crafted project parameter and compares the HTTP error codes - a 404 ('Project not found') versus a 403 ('Untrusted callers may only access public images') reveals whether a named project exists. A public proof-of-concept with working curl commands is published in the GHSA advisory, so the attack is trivially reproducible for reconnaissance and project-name enumeration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 12, 2026
Unauthenticated remote attackers can confirm the existence of LXD projects on Canonical LXD by comparing HTTP status codes returned from the /1.0/images API, which is registered as an AllowUntrusted endpoint that requires no account. The endpoint replies 404 for a non-existent project but 403 for an existing one, producing a project-enumeration oracle with limited confidentiality impact; a publicly available exploit code exists in the form of the upstream GHSA reproduction steps, but there is no confirmed active exploitation and EPSS is low at roughly 0.09% (25th percentile). The practical exposure is bounded because LXD only listens on a network HTTPS socket when core.https_address has been deliberately enabled, and the flaw reveals nothing beyond project name existence.
Earlier versions of this analysis (1)
RemediationAI
Vendor-released patch: upgrade to LXD 6.5 (current series) or LXD 5.21.4 (5.21 LTS), as documented in GHSA-xch9-h8qw-85c7; snap users should refresh the lxd snap to a channel at or above these versions, and Debian users should apply DSA-6027-1 (https://security-tracker.debian.org/tracker/dsa-6027-1). Because the flaw requires the network HTTPS API to be reachable, the most effective immediate mitigation is to stop exposing it: remove or restrict core.https_address so the daemon listens only on its local Unix socket, or firewall the API port (commonly 8443) to trusted management hosts only - the trade-off is loss of remote CLI/API access, remote clients, and LXD cluster traffic, which must instead be routed through an authenticated control plane. Disabling the untrusted API surface is not a viable compensating control here, since the endpoint is intentionally public and used for public image access; where remote exposure is unavoidable, treat project names as non-secret and monitor for repeated 403/404 differential probing of /1.0/images?project=. Note that no patch version should be assumed beyond 5.21.4 and 6.5, and the leak is confined to project-existence reconnaissance, so prioritization can be moderate rather than emergency.
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
This is a CWE-209 (generation of error message containing sensitive information) issue in the Go implementation of the LXD REST API. The /1.0/images endpoint is exposed through the daemon's untrusted API surface (daemon.go AllowUntrusted registration), so callers without accounts can reach it. When the project query parameter is supplied, the imagesGet handler delegates validation to projectutils.ImageProject; the underlying database mapper (db/cluster/projects.mapper.go) returns a 404 Not Found ('fetch project: Project not found') when the project does not exist, whereas the handler returns response.Forbidden (403, 'Untrusted callers may only access public images in the default project') when the project exists but the caller cannot view it. Because distinct error classes are propagated to the client, the two responses form a binary oracle for project existence. The affected code is packaged as the Go module github.com/canonical/lxd and is shipped both in the LXD snap and in distribution packages (Debian tracks DSA-6027-1 across nine releases). The CVSS 4.0 base of 6.9 and the assessed CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N both reflect unauthenticated, low-complexity network access with only low confidentiality impact and no integrity or availability effect.
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
The images API is unauthenticated and network-reachable (AV:N/PR:N/UI:N), the status-code oracle is trivially triggered (AC:L), and only project-existence metadata leaks (C:L, I:N, A:N).
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 images API in Canonical LXD before 6.5 and 5.21.4 on all platforms allows unauthenticated remote attackers to determine project existence via differing HTTP status code responses.
Executive ViewAI
Organizations using images API in Canonical LXD should be aware of moderate risk from CVE-2025-54291 rated CVSS 5.3. Exploitation could compromise the security of affected deployments. 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 network access and enable monitoring.
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 project enumeration in Canonical LXD 5.21.x before 5.21.4 and 6.x before 6.5 lets remote attackers deter
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
Improper certificate validation in the HTTPS API listener of Canonical LXD lets an unauthenticated remote attacker prese
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
Same weakness CWE-209 – Error Message Information Leak
View allSame technique Information Disclosure
View allVendor StatusVendor
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-32641
GHSA-xch9-h8qw-85c7
NVD
CVE.org
EPSS
Exploit-DB