CVE-2025-54291

5.3 MEDIUM

📋 TL;DR

This vulnerability allows unauthenticated remote attackers to determine whether specific projects exist in Canonical LXD by observing different HTTP status code responses from the images API. This affects all platforms running LXD versions before 6.5 and 5.21.4.

💻 Affected Systems

Products:
  • Canonical LXD
Versions: All versions before 6.5 and 5.21.4
Operating Systems: All platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all LXD deployments with the images API accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could map all projects in an LXD deployment, potentially identifying sensitive or restricted projects for targeted attacks.

🟠

Likely Case

Information leakage about project structure and existence, enabling reconnaissance for further attacks.

🟢

If Mitigated

Limited to project enumeration without access to actual project data or images.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Simple HTTP request/response timing attack requiring no authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: LXD 6.5 or 5.21.4

Vendor Advisory: https://github.com/canonical/lxd/security/advisories/GHSA-xch9-h8qw-85c7

Restart Required: Yes

Instructions:

1. Update LXD to version 6.5 or 5.21.4 using your package manager. 2. Restart the LXD service. 3. Verify the update was successful.

🔧 Temporary Workarounds

Restrict API Access

all

Limit network access to the LXD API to trusted networks only.

Configure firewall rules to restrict access to LXD API port (default 8443)

Disable Images API

linux

Temporarily disable the images API if not required.

Modify LXD configuration to disable images API endpoints

🧯 If You Can't Patch

  • Implement network segmentation to isolate LXD instances from untrusted networks.
  • Monitor for unusual HTTP request patterns to images API endpoints.

🔍 How to Verify

Check if Vulnerable:

Check LXD version with 'lxd --version' or 'snap info lxd' if installed via snap.

Check Version:

lxd --version

Verify Fix Applied:

Confirm version is 6.5 or higher, or 5.21.4 or higher.

📡 Detection & Monitoring

Log Indicators:

  • Multiple HTTP 404 vs 403 responses for images API requests from single IPs
  • Unusual request patterns to /1.0/images endpoints

Network Indicators:

  • Repeated HTTP requests to LXD API images endpoints from external IPs
  • Patterns of requests with different project names

SIEM Query:

source="lxd" AND (uri_path="/1.0/images" OR uri_path="/1.0/images/*") AND (status=404 OR status=403) | stats count by src_ip

🔗 References

📤 Share & Export