Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain root inside a guest VM
-
ExploitRun modified incus-agent serving duplicate symlink-then-directory entries
-
ExecutionOperator runs 'incus file pull -r' from that VM
-
ImpactClient writes through symlink, overwriting /etc/shadow on host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
|
| Exploitation Conditions | Exploitation requires ALL of the following: (1) the attacker has root inside an Incus virtual machine and can run a modified incus-agent that serves inconsistent SFTP listings (the same entry name returned first as a symlink, then as a directory or regular file); and (2) an operator must run 'incus file pull -r' recursively from that specific compromised VM - this operator interaction is mandatory and is the primary limiting factor. The damage is bounded by the operator's privileges on the CLI host: run as root it can overwrite /etc/shadow or /root/.ssh/authorized_keys; run unprivileged into a dedicated directory the impact is contained. Containers are NOT affected because their transfers are served by forkfile on the host rather than an in-guest agent. Affected: Incus before 6.0.7, 6.1.0 before 7.0.2, and 7.1.0 before 7.5.0. Vendor workarounds: avoid recursive pulls from untrusted VMs, or run the pull as an unprivileged user into a dedicated directory; the complete fix is updating to a fixed version. |
| Impact | This is a genuine but conditional integrity threat rather than a mass-exploitation emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:P, VI:H/SI:H) scores 6.9 (medium): the high integrity impact on both the vulnerable system and the subsequent system (the operator's host) reflects that a successful attack escapes the VM boundary and writes attacker-controlled files like /etc/shadow or /root/.ssh/authorized_keys on the host, which can escalate to full host compromise. However, the AT:P (attack requirement) and UI:P (operator must act) metrics are decisive limiters: exploitation cannot proceed unless an operator voluntarily runs 'incus file pull -r' against a VM the attacker already controls at root. No EPSS score, KEV listing, or confirmed working exploit code is present in the input - only vendor/GHSA and VulnCheck advisory references, not a PoC. The vuln.today decision label is 'this_month', not act_now/emergency, consistent with a patch-available, high-impact-but-interaction-gated flaw. Net: prioritize patching for operators who pull files from untrusted guests, but this is not a drive-by, pre-auth, widespread-exploitation scenario. Note a signal nuance: PR:L here reflects that the attacker needs root inside the guest VM, not any privilege on the targeted incus CLI host - the trust boundary is the guest/host split, not an authentication check on the host. |
| Exploit ScenarioDerived | An attacker who has gained root inside an Incus-managed virtual machine replaces incus-agent with a modified version that serves a malicious SFTP directory listing. When an operator later runs 'incus file pull -r' from that VM, the agent returns the same entry name twice - first as a symlink, then as a directory or file - causing the client to write through the symlink and land attacker-controlled content outside the target directory on the operator's host, with the operator's privileges. No public exploit code is identified in the input, though the mechanism is fully described in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Arbitrary file write on the Incus CLI host occurs when an operator runs 'incus file pull -r' against a virtual machine whose in-guest incus-agent has been replaced with a malicious build; the agent returns the same directory entry name twice, first as a symlink and then as a directory or regular file, so the client recursively creates or writes through the link it just made and lands outside the intended target directory. Affected releases are Incus before 6.0.7, 6.1.0 before 7.0.2, and 7.1.0 before 7.5.0, and only VM-served transfers are exposed because container transfers are handled by forkfile on the host rather than by an in-guest agent. This is a genuine but conditional integrity threat rather than a mass-exploitation emergency: the attacker must already hold root inside the guest VM (the assessed vector is PR:L) and the operator must voluntarily run a recursive pull from that specific compromised VM (UI:R), with final impact bounded by the operator's privileges on the CLI host; no public exploit has been identified at time of analysis and there is no CISA KEV entry.
RemediationAI
Vendor-released patch: update to Incus 6.0.7, 7.0.2, or 7.5.0 depending on the branch in use, which is the complete fix per the upstream advisory (GHSA-wfvq-qh87-gm4j, https://github.com/lxc/incus/security/advisories/GHSA-wfvq-qh87-gm4j); for consumers of the Go module, the fix is go/github.com/lxc/incus/v7/cmd/incus >= v7.5.0. Until the upgrade is applied, the vendor workarounds are to avoid running 'incus file pull -r' from untrusted or potentially compromised virtual machines, and to run any required recursive pull as an unprivileged user into a dedicated directory - the trade-off is that this contains the blast radius to that user's writeable paths instead of overwriting host files such as /etc/shadow or /root/.ssh/authorized_keys, but it does not fix the underlying link-following behaviour, so neither workaround substitutes for updating.
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
Incus implements 'incus file pull -r' as an SFTP directory walk served by incus-agent inside the guest. The client routine sftpRecursivePullFile in cmd/incus/utils_sftp.go iterates the entries returned by ReadDir, calls Lstat on each one, and then creates the corresponding local object under the target path. The root cause is CWE-59 (Improper Link Resolution Before File Access / link following): the client trusted the agent's listing and Lstat results without checking that they were mutually consistent or that a later entry did not resolve to a path the transfer had itself just created as a symlink. Because os.Mkdir and os.Create follow symlinks, a duplicate entry reported first as a symlink and second as a directory or regular file lets the second operation write through the freshly created link to any path the CLI user can reach. A compromised agent is inherent to the threat model - the guest is the untrusted side - so the defect is the missing consistency and containment check on the host client, not the agent's behaviour. Containers are architecturally out of scope because their file transfers are served by forkfile on the host instead of by an in-guest agent, a distinction confirmed in the upstream advisory.
Know when the next one hits your stack
- 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N
Attacker needs root in the guest (PR:L) and the operator must initiate a recursive pull (UI:R, AC:H for the agent's crafted inconsistent listing); the write escapes the VM to the host (S:C) with integrity-only impact (I:H, C/A:N).
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
Incus before 6.0.7, 6.1.0 before 7.0.2, and 7.1.0 before 7.5.0 contains an arbitrary file write vulnerability in sftpRecursivePullFile that allows a malicious incus-agent to escape the target directory during incus file pull -r. Attackers with root in a virtual machine can return duplicate entries reported first as symlinks then as files or directories, writing attacker-controlled files such as /etc/shadow on the operator's host.
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.
EUVD-2026-108301
GHSA-38pq-92hw-9rp6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB