CVE-2025-54290

5.3 MEDIUM

📋 TL;DR

This vulnerability allows unauthenticated network attackers to determine whether specific LXD projects exist by sending crafted requests with wildcard fingerprints to the image export API. It affects Canonical LXD installations on Linux where the API is exposed to untrusted networks. The information disclosure could help attackers map internal project structures.

💻 Affected Systems

Products:
  • Canonical LXD
Versions: LXD versions before 6.5 and 5.21.4
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems where the LXD API is accessible to untrusted networks. Default LXD installations typically listen on local Unix socket only.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could enumerate all projects in an LXD deployment, potentially identifying sensitive projects and preparing for targeted attacks against specific project resources.

🟠

Likely Case

Attackers discover project names and existence, which could be used for reconnaissance and planning further attacks against identified projects.

🟢

If Mitigated

With proper network segmentation and authentication requirements, the impact is limited to information disclosure about project naming conventions.

🌐 Internet-Facing: HIGH - The vulnerability requires no authentication and can be exploited remotely if the LXD API is exposed to the internet.
🏢 Internal Only: MEDIUM - Even internally, unauthenticated users or compromised systems could map project structures, aiding lateral movement.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The advisory describes the vulnerability clearly, making exploitation straightforward for attackers with network access to the API.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: LXD 6.5 or 5.21.4

Vendor Advisory: https://github.com/canonical/lxd/security/advisories/GHSA-p3x5-mvmp-5f35

Restart Required: Yes

Instructions:

1. Update LXD to version 6.5 or 5.21.4 using your distribution's package manager. 2. Restart the LXD service. 3. Verify the version is updated.

🔧 Temporary Workarounds

Restrict API Network Access

linux

Configure LXD to only listen on local Unix socket or restrict network access to trusted IPs

lxc config set core.https_address [::1]:8443
lxc config set core.https_address 127.0.0.1:8443

Enable Authentication Requirements

linux

Ensure all API endpoints require proper authentication

lxc config set core.trust_password your_secure_password

🧯 If You Can't Patch

  • Implement strict network firewall rules to only allow trusted sources to access the LXD API port (default 8443)
  • Monitor API logs for unusual access patterns or enumeration attempts

🔍 How to Verify

Check if Vulnerable:

Check if LXD version is below 6.5 or 5.21.4 and if the API is accessible from untrusted networks

Check Version:

lxc --version

Verify Fix Applied:

Confirm LXD version is 6.5 or 5.21.4 or higher, and test that wildcard fingerprint requests no longer reveal project existence

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authentication attempts with wildcard patterns
  • Unusual access patterns to image export API endpoints

Network Indicators:

  • Unusual traffic to LXD API port (default 8443) from untrusted sources
  • Patterns of requests with wildcard characters in parameters

SIEM Query:

source="lxd" AND ("wildcard" OR "*" OR "%" OR "?") AND ("image" OR "export" OR "fingerprint")

🔗 References

📤 Share & Export