Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with instance-creation privileges
-
DeliveryCraft malicious btrfs optimized backup with traversal in optimized_header.yaml
-
ExploitImport backup triggering unpackVolume path resolution
-
ExecutionWrite/delete arbitrary host files as root
-
ImpactFull 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
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.
Primary rating from Vendor (canonical).
CVSS VectorVendor: canonical
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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
Privilege escalation in Canonical LXD's operations API (LXD before 6.5 and LXD 5.21 before 5.21.4) allows an authenticat
Authenticated remote attackers with access to the Canonical LXD instance log retrieval or deletion endpoints can read ar
Server-side template injection in Canonical LXD's instance snapshot naming feature lets an authenticated user who can mo
Unauthenticated project enumeration in Canonical LXD 5.21.x before 5.21.4 and 6.x before 6.5 lets remote attackers deter
Unauthenticated remote attackers can confirm the existence of LXD projects on Canonical LXD by comparing HTTP status cod
Privilege escalation to host root in Canonical LXD occurs when the container manager unpacks crafted image or backup arc
Host root code execution in Canonical LXD arises from a path-traversal flaw in instance template processing, letting an
Arbitrary host file read and write in Canonical LXD occurs because the image import/unpack routine does not verify wheth
Canonical LXD's NVIDIA GPU passthrough configuration handler fails to sanitize newline characters in user-supplied `nvid
Path traversal in Canonical's LXD container and VM manager allows a user with backup import/restore privileges to write
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
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allVendor StatusVendor
SUSE
Severity: Critical| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-88257
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB