Skip to main content

Canonical LXD CVE-2025-54290

| EUVDEUVD-2025-32639 MEDIUM
Information Exposure (CWE-200)
2025-10-02 security@ubuntu.com GHSA-p3x5-mvmp-5f35
6.9
CVSS 4.0 · Vendor: ubuntu
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach network-exposed LXD HTTPS API
  2. Exploit
    Send wildcard (%25) fingerprint export requests
  3. Execution
    Compare 500 vs 404 error responses
  4. Impact
    Enumerate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – 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)
v1 Mar 13, 2026 - 19:12 CVSS 5.3

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

LXD 5.21 <5.21.4
LXD 6.0 <6.5

Affected Packages

go github.com/canonical/lxd fix: 0.0.0-20250827065555-0494f5d47e41, 5.21.4, 6.5
euvd lxd fix: 5.21.4, 6.5

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

Vendor (ubuntu) PRIMARY 6.9 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Ubuntu MEDIUM
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Primary rating from Vendor (ubuntu).

CVSS VectorVendor: ubuntu

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

5
CVSS changed
Oct 12, 2026 - 15:22 NVD
5.3 (MEDIUM) 6.9 (MEDIUM)
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
PoC Detected
Oct 24, 2025 - 14:20 vuln.today
Public exploit code
CVE Published
Oct 02, 2025 - 10:15 cve.org
MEDIUM 6.9
CVE Published
Oct 02, 2025 - 10:15 nvd
MEDIUM 5.3

DescriptionCVE.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

Why It Matters

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.

Business Impact: Low
Compensating Controls

Apply vendor patch. If patching is delayed: restrict endpoint access, redact sensitive data in logs.

Threat Intelligence Overview

EPSS Score
0.1%
Top 74% exploitable
Prevalence
Medium
Popular Canonical container/VM manager, common in Linux shops but not universal
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Low

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Lxd

View all
CVE-2025-54286 HIGH POC
7.5 Oct 02

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

CVE-2025-54289 HIGH POC
7.4 Oct 02

Privilege escalation in Canonical LXD's operations API (LXD before 6.5 and LXD 5.21 before 5.21.4) allows an authenticat

CVE-2025-54293 HIGH POC
7.1 Oct 02

Authenticated remote attackers with access to the Canonical LXD instance log retrieval or deletion endpoints can read ar

CVE-2025-54287 HIGH POC
7.1 Oct 02

Server-side template injection in Canonical LXD's instance snapshot naming feature lets an authenticated user who can mo

CVE-2025-54291 MEDIUM POC
6.9 Oct 02

Unauthenticated remote attackers can confirm the existence of LXD projects on Canonical LXD by comparing HTTP status cod

CVE-2026-63294 CRITICAL
9.9 Aug 12

Privilege escalation to host root in Canonical LXD occurs when the container manager unpacks crafted image or backup arc

CVE-2026-66897 CRITICAL
9.9 Aug 24

Host root code execution in Canonical LXD arises from a path-traversal flaw in instance template processing, letting an

CVE-2026-63293 CRITICAL
9.9 Aug 12

Arbitrary host file read and write in Canonical LXD occurs because the image import/unpack routine does not verify wheth

CVE-2026-63298 CRITICAL
9.9 Aug 12

Canonical LXD's NVIDIA GPU passthrough configuration handler fails to sanitize newline characters in user-supplied `nvid

CVE-2026-66898 CRITICAL
9.9 Aug 12

Path traversal in Canonical's LXD container and VM manager allows a user with backup import/restore privileges to write

CVE-2026-62420 CRITICAL
9.9 Aug 12

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

CVE-2026-63300 CRITICAL
9.9 Aug 12

Project-confinement bypass in Canonical LXD lets an authenticated user holding can_create_instances on a restricted proj

Vendor StatusVendor

Ubuntu

Priority: Medium
lxd
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

incus
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 -
lxd
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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy