CVE-2026-87799 in LXD
Summary
by MITRE • 09/28/2026
Improper link resolution in the migration receive path in Canonical LXD versions 4.0 and later (fixed in 4.0.14, 5.0.10, 5.21.8 and 6.10) on Linux allows an authenticated client that can create instances or custom storage volumes in a project, or a malicious migration source server, to write attacker-controlled files to arbitrary paths on the target host as root, leading to full host compromise. The attacker does this with a crafted rsync or btrfs send stream that plants a symlink in the transferred volume, such as rootfs or root.img, and then writes through it.
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Analysis
by VulDB Data Team • 09/28/2026
The vulnerability identified involves an improper link resolution flaw within the migration receive path of Canonical LXD, affecting versions 4.0 and later prior to their respective fixed releases including 4.0.14, 5.0.10, 5.21.8, and 6.10 on Linux systems. This security defect allows an authenticated client with the ability to create instances or custom storage volumes within a project, as well as a malicious migration source server, to execute arbitrary file writes at root privileges on the target host. The core technical flaw stems from how LXD handles symbolic links during the restoration of volume data via rsync or btrfs send streams. When an attacker crafts these transfer streams to include symlinks pointing to sensitive system paths such as /etc/shadow or other critical configuration files, and subsequently writes content through these links, the underlying file operations resolve the symlink rather than treating it as a regular file within the isolated volume context. This behavior effectively bypasses the intended isolation boundaries of the container environment, allowing data written into what appears to be an internal volume path to actually land in arbitrary locations on the host filesystem with root permissions.
The operational impact of this vulnerability is severe, leading directly to full compromise of the underlying host operating system. Because LXD typically runs its daemon as a privileged user or utilizes capabilities that allow for significant control over namespaces and file systems, writing files as root via these symlinks grants an attacker complete administrative access to the host machine. An authenticated malicious actor can leverage this flaw to install backdoors, modify security configurations, exfiltrate sensitive data from system directories, or escalate privileges further if additional local vulnerabilities exist. Similarly, a compromised migration source server could inject malicious payloads into the target host during live migration processes, undermining trust in infrastructure integrity and enabling lateral movement across virtualized environments. This represents a critical failure in isolation mechanisms that are fundamental to container security models.
From a classification perspective, this vulnerability aligns with CWE-59 Improper Link Resolution Before File Access, commonly known as a symlink following or race condition variant depending on the specific execution context of the link resolution logic. The attack vector is categorized under ATT&CK technique T1048 which involves Exfiltration Over Alternative Protocol if data theft occurs, but more critically it relates to privilege escalation and defense evasion by manipulating file system structures to bypass access controls. It also touches upon CWE-269 Improper Privilege Management as the attacker gains root-level write capabilities without explicit authorization for those specific paths. The use of standard tools like rsync or btrfs send streams makes this attack relatively straightforward to execute, requiring only that the victim LXD daemon processes a maliciously crafted stream during instance creation, volume import, or live migration operations.
Mitigation strategies must prioritize immediate patching to the fixed versions mentioned above for all affected deployments. Organizations should audit their LXD environments to identify any instances where untrusted users have permissions to create custom storage volumes or initiate migrations from external sources that are not fully trusted. Implementing strict project-level access controls can limit exposure by ensuring only highly privileged administrators can perform operations involving volume imports or migrations unless absolutely necessary. Additionally, deploying file integrity monitoring solutions on critical host paths such as /etc and other sensitive directories can help detect unauthorized modifications resulting from this exploit in real time. Security teams should also review their migration policies to ensure that source servers are authenticated and verified before allowing data transfer streams into production environments, thereby reducing the risk of malicious stream injection during live migrations.