Skip to main content
Vulnerability Database/CVE-2026-86335

CVE-2026-86335: Canonical LXD Auth Bypass Vulnerability

CVE-2026-86335 is an authorization bypass flaw in Canonical LXD that allows project-restricted clients to access private images from other projects. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-86335 Overview

CVE-2026-86335 is a missing authorization vulnerability [CWE-862] in the imageDownload function of Canonical LXD, a Linux container and virtual machine manager. The flaw affects LXD versions before 5.0.10, 5.21.8, and 6.10 on Linux. A project-restricted client can access private images belonging to other projects by reusing a known local image fingerprint during image or instance import requests. The vulnerability breaks the multi-tenant isolation model that LXD projects are designed to enforce.

Critical Impact

Authenticated users scoped to one LXD project can read confidential image contents from other projects, exposing sensitive data across tenant boundaries.

Affected Products

  • Canonical LXD versions before 5.0.10
  • Canonical LXD versions before 5.21.8
  • Canonical LXD versions before 6.10

Discovery Timeline

  • 2026-09-28 - CVE CVE-2026-86335 published to NVD
  • 2026-09-28 - Last updated in NVD database

Technical Details for CVE-2026-86335

Vulnerability Analysis

LXD organizes resources such as instances, networks, and images into projects to enforce tenant separation. The imageDownload code path handles image retrieval during image import and instance creation workflows. The function fails to verify that the caller is authorized to read an image when a local image already exists with the requested fingerprint. If the client supplies a fingerprint that matches a private image stored in a different project, LXD returns the cached image data instead of refetching or denying the request.

Because image fingerprints are deterministic SHA-256 content hashes, an attacker who learns or guesses a fingerprint can trigger the reuse path. The result is cross-project disclosure of image contents, which may include configured credentials, application code, or sensitive filesystem data.

Root Cause

The root cause is a missing authorization check [CWE-862] in the local fingerprint reuse branch of imageDownload. The function treats the presence of a locally cached image as sufficient grounds to serve it, bypassing the project-scoped access control that normally gates image reads. Upstream pull requests #18987, #19001, #19002, and #19003 introduce the missing project-membership check before reusing cached images.

Attack Vector

Exploitation requires an authenticated client with permissions in at least one LXD project. The attacker issues an image import or instance creation request referencing the fingerprint of a private image owned by another project. LXD identifies the fingerprint as locally present and returns the image without validating project ownership. The attack is remotely reachable over the LXD API but has elevated complexity because the attacker must know or recover a target fingerprint. See the GitHub Security Advisory GHSA-j7p3-5g2v-69j8 for additional detail.

Detect Identity Attacks the Moment Authentication Fails

Singularity™ Identity surfaces credential misuse, lateral movement, and privilege escalation in real time, so you can contain the breach before it spreads.

Stop Identity Attacks

Detection Methods for CVE-2026-86335

Indicators of Compromise

  • Image or instance creation API calls that reference fingerprints the requesting project has never previously imported or published.
  • Repeated GET or POST operations against /1.0/images/<fingerprint> from a restricted client correlated with fingerprints owned by other projects.
  • Successful image downloads logged in LXD audit output where the source project differs from the requester's assigned project.

Detection Strategies

  • Enable LXD audit logging and correlate image fingerprint access against the authenticated identity's project scope.
  • Baseline normal fingerprint access patterns per project and alert on cross-project fingerprint references.
  • Review image import telemetry for clients that attempt fingerprint lookups without a corresponding upload or remote source URL.

Monitoring Recommendations

  • Forward LXD daemon logs to a centralized analytics pipeline for query-based detection.
  • Monitor TLS client certificate identities and OIDC subjects used against the LXD HTTPS API for anomalous image operations.
  • Track image creation timestamps against instance import events to identify replay of known fingerprints.

How to Mitigate CVE-2026-86335

Immediate Actions Required

  • Upgrade LXD to version 5.0.10, 5.21.8, or 6.10 or later depending on your maintenance track.
  • Audit existing project memberships and remove unnecessary API credentials for untrusted tenants.
  • Rotate any secrets, keys, or credentials stored inside private LXD images that may have been exposed.

Patch Information

Canonical released fixes in LXD 5.0.10, 5.21.8, and 6.10. The remediation lands through upstream pull requests #18987, #19001, #19002, and #19003, which add project authorization checks before serving locally cached images. Full details are published in GitHub Security Advisory GHSA-j7p3-5g2v-69j8.

Workarounds

  • Restrict LXD API network exposure to trusted operators until patched versions are deployed.
  • Avoid storing sensitive material inside shared image caches on multi-tenant LXD clusters.
  • Segregate highly sensitive workloads onto dedicated LXD daemons with no cross-tenant project membership.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.