Skip to main content

Canonical LXD EUVDEUVD-2026-88257

| CVE-2026-85526 CRITICAL
Path Traversal (CWE-22)
2026-09-28 canonical
9.9
CVSS 3.1 · Vendor: canonical
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with instance-creation privileges
  2. Delivery
    Craft malicious btrfs optimized backup with traversal in optimized_header.yaml
  3. Exploit
    Import backup triggering unpackVolume path resolution
  4. Execution
    Write/delete arbitrary host files as root
  5. Impact
    Full host compromise (container escape)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires: (1) an authenticated LXD account with instance-creation privileges (PR:L); (2) the host using the Btrfs storage driver; and (3) the attacker performing a btrfs 'optimized' backup import supplying a crafted subvolumes[].path in backup/optimized_header.yaml. The vulnerable code is unpackVolume in the Btrfs storage driver. Limiting factors: exploitation is confined to deployments using the Btrfs backend, needs valid low-privilege API credentials rather than being fully anonymous, and depends on the optimized-backup import feature being reachable to the attacker; no special user interaction is required once these prerequisites are met.

Impact

This is a genuinely high-priority vulnerability, not a CVSS-inflated one. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H = 9.9) is internally consistent with the description: a network-reachable LXD API, low complexity, only low privileges (instance-creation rights) needed, no user interaction, and a scope change (S:C) because the flaw escapes the container/backup-import context to write as root on the host filesystem - a container-to-host escape. The C:H/I:H/A:H triad is justified because arbitrary delete/replace of host files as root trivially escalates to full host takeover (overwrite binaries, cron, SSH keys), which also yields confidentiality. Tempering the score: this is authenticated (PR:L), so the attacker must already hold instance-creation privileges on the LXD host, and it is specific to the Btrfs storage backend during an optimized backup import - not every LXD deployment uses Btrfs. No EPSS score, no CISA KEV listing, and no public POC were provided, and the fix lives in a private repo (lxd-private PRs), so mass exploitation signals are currently absent. Net: the flaw is severe and vendor-confirmed with a patch, but real-world urgency depends on how exposed the LXD API is and whether Btrfs is in use - treat as high priority for multi-tenant LXD hosts, lower for single-admin deployments.

Exploit ScenarioDerived

An attacker holding a low-privilege LXD account with permission to create instances crafts a malicious btrfs 'optimized' backup archive whose backup/optimized_header.yaml contains a subvolumes[].path entry with path-traversal sequences. When they import it, the Btrfs driver's unpackVolume routine resolves the crafted path outside the intended target and deletes or overwrites host files as root, enabling full host compromise. No public exploit code was identified at the time of analysis, but the vulnerability is vendor-confirmed with an available patch.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 28, 2026

Path traversal in Canonical LXD's Btrfs storage driver allows an authenticated user with instance-creation privileges to escape the intended backup import target and delete or replace arbitrary files and directories on the host as root, by supplying a crafted subvolumes[].path value in backup/optimized_header.yaml during a btrfs 'optimized' backup import. The assessed vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, 9.9) reflects high confidentiality, integrity and availability impact with a scope change because the traversed write lands outside the LXD daemon's own container boundary; exploitation requires valid low-privilege API credentials and a Btrfs-backed host, not anonymous access. No public exploit code has been identified at time of analysis, and the issue is not confirmed actively exploited (CISA KEV), but the low attack complexity and root-level file-system effect make it a genuine high-priority fix rather than a CVSS-inflated score.

RemediationAI

Primary fix: upgrade to the LXD release containing Canonical's patch for this issue, as described in the vendor advisory GHSA-h85r-gjgx-g2rv (https://github.com/canonical/lxd/security/advisories/GHSA-h85r-gjgx-g2rv); patch availability is confirmed by the vendor, and the fix references in the intelligence set (https://github.com/canonical/lxd-private/pull/84, /87, /103, /104, /105) are private upstream pull requests, so a specific patched version number cannot be confirmed from the supplied data - follow the advisory for exact versions per release channel (snap, LTS, or distribution package) rather than assuming a number. Until the upgrade is applied, the most effective compensating control is to remove exposure of the vulnerable code path: migrate the storage pool off the Btrfs driver (for example to ZFS, LVM, dir or Ceph) on hosts where untrusted users can create instances, accepting that migration is disruptive and may require rebuilding pools or instances. If the driver cannot be changed, restrict instance-creation and backup-import privileges to a tightly audited administrative group, since the prerequisite is a valid low-privilege LXD account with instance-creation rights - this reduces the attacker pool but does not eliminate risk from any such insider or compromised credential. Additional hardening includes blocking or gating the LXD REST API backup-import endpoints from networks and tenants that do not strictly require them, and treating any externally supplied btrfs optimized backup archive as untrusted input (inspect or reject backups whose optimized_header.yaml contains relative or traversing subvolumes[].path values) - this validation is a manual compensating measure, is error-prone at scale, and should be considered temporary until the vendor patch is deployed.

Affected VersionsENISA

LXD 4.0.0 <4.0.14
LXD 5.21.0 <5.21.8
LXD 6.0 <6.10
LXD 5.0.0 <5.0.10

Affected Packages

euvd lxd fix: 4.0.14, 5.0.10, 5.21.8, 6.10

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in 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 system container and virtual machine manager; when configured with the Btrfs storage driver it stores instances as Btrfs subvolumes and supports an 'optimized' backup format that ships a metadata manifest at backup/optimized_header.yaml describing the subvolumes to restore. The vulnerable routine, unpackVolume, reads the subvolumes[].path field from that untrusted manifest and uses it to construct destination paths for subvolume creation/unpacking without adequately canonicalizing the value, so path elements such as ../ traversal sequences escape the intended per-instance backup directory. This is a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) defect in a privileged daemon: because unpackVolume runs as root on the host, successful traversal yields root-owned file deletion or replacement rather than merely a contained import failure. The vulnerable surface is the backup-import path of the daemon (reachable over the LXD API), and the CVSS scope change (S:C) captures that the exploited component's privilege boundary - the LXD daemon - is crossed to affect the host filesystem. The CPE entry cpe:2.3:a:canonical:lxd:*:*:*:*:*:*:*:* is version-unconstrained, meaning the source data does not pin a precise vulnerable or fixed version; deployments are effectively affected by whether they run a Btrfs-backed LXD build predating the vendor fix.

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 (canonical) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

Network-reachable API needs only instance-creation rights (PR:L); arbitrary root file replace/delete escapes to the host (S:C) enabling full compromise, so C/I/A:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
SUSE CRITICAL

Primary rating from Vendor (canonical).

CVSS VectorVendor: canonical

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Path traversal in the Btrfs storage driver (unpackVolume) in Canonical LXD on Linux allows an authenticated user with instance creation privileges to delete or replace arbitrary files and directories on the host filesystem as root via a crafted subvolumes[].path entry in backup/optimized_header.yaml during a btrfs optimized backup import.

Technical POC Analysis

Bug class: CWE-22, Improper Limitation of a Pathname to a Restricted Directory.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Canonical LXD hosts that use the Btrfs storage driver are exposed to a critical flaw that allows an already-authenticated user with instance-creation privileges to reach outside their own container boundary and delete or overwrite files on the underlying host as root. The blast radius is not limited to the offending container: every workload, tenant, and credential resident on that host is put at risk, which makes shared or multi-tenant LXD infrastructure the highest-priority population to remediate. Exploitation requires valid low-privilege API credentials and a Btrfs-backed host, and no public exploit code has been identified at time of analysis, but the low attack complexity and root-level file-system effect justify treating this as a genuine high-priority fix rather than an inflated score.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 58% exploitable
Prevalence
Medium
Canonical LXD is a common container/VM manager on Ubuntu servers, not universal
Social Media
2
Sightings
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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-54290 MEDIUM POC
6.9 Oct 02

Unauthenticated project enumeration in Canonical LXD 5.21.x before 5.21.4 and 6.x before 6.5 lets remote attackers deter

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

Vendor StatusVendor

SUSE

Severity: Critical
Product Status
openSUSE Tumbleweed Fixed

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