Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local CAP_SYS_ADMIN access
-
DeliveryAdd device to sprout btrfs filesystem
-
ExploitTrigger subsequent system chunk creation failure
-
ExecutionTransaction aborted with device still on post_commit_list
-
PersistFreed device referenced by transaction list
-
ImpactKernel use-after-free and crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires local access with the privilege to add a device to a btrfs filesystem (btrfs_init_new_device, normally CAP_SYS_ADMIN), and specifically a sprout filesystem (a writable filesystem created from a read-only btrfs seed) where create_chunk() adds the new device to the transaction via device->post_commit_list. The bug only manifests when the subsequent system chunk creation fails, causing btrfs_init_new_device() to abort the transaction and release the device while it is still linked. Limiting factors: the attacker does not normally control whether the system-chunk creation fails, no remote vector exists (AV:L), and administrative privilege plus an uncommon seed/sprout configuration are needed - so realistic exploitation is narrow and primarily a crash/DoS rather than a reliable primitive. |
| Impact | This is a low-to-moderate priority local availability bug, not an urgent remote threat. The input CVSS vector (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, score 5.5) correctly scopes impact to availability only (C:N/I:N) - the use-after-free leads to a WARNING and references to freed memory in btrfs_free_device(), i.e. kernel instability/crash rather than data theft. Multiple signals agree on low urgency: EPSS is 0.17% (5th percentile), there is no CISA KEV listing, and the only references are stable-tree patch commits - no public exploit code. The vuln.today decision label is 'this_month', consistent with a real-but-not-emergency fix. One conflict worth noting: the input Tags include 'Information Disclosure', which directly contradicts the CVSS C:N (no confidentiality impact) and the description, where the fault is a dangling transaction list entry causing a crash - treat the confidentiality framing as unsupported. Also note the input PR:L may understate privilege: btrfs device-add operations (btrfs_init_new_device) normally require CAP_SYS_ADMIN, and the trigger depends on an error path (failed system chunk creation) the attacker does not reliably control, so real-world exploitability is narrower than the raw score suggests. |
| Exploit ScenarioDerived | A local user with the capability to add a device (CAP_SYS_ADMIN) performs a device-add on a btrfs sprout (seed-derived) filesystem; if creation of the subsequent system chunk fails, the transaction is aborted while the new device is still linked on the post_commit_list, so releasing it leaves the transaction dev_update_list referencing freed memory. No public exploit code exists; triggering reliably would require inducing the chunk-creation failure, which is not normally attacker-controlled. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Local, privileged use-after-free in the Linux kernel's btrfs seed/sprout device handling can crash the system or corrupt the transaction device list when adding a device to a sprout filesystem fails midway. Only systems running btrfs where an operator with CAP_SYS_ADMIN capability adds a device to a writable filesystem sprouted from a read-only seed are exposed, and the flaw surfaces only if the follow-on system chunk creation fails, so practical exploitation is narrow and results in denial of service rather than a reliable memory-corruption primitive. There is no CISA KEV listing and no public exploit identified at time of analysis; EPSS is 0.17% (5th percentile), and vendor patches are available for the affected stable branches.
RemediationAI
Vendor-released patch: update to Linux 6.12.111, 6.18.53, 7.2.7 or 7.3-rc2 (or the corresponding stable commit listed in the advisories at https://git.kernel.org/stable/c/e9e7e37afa85db770e6084360b21a21a8b3a583f and https://nvd.nist.gov/vuln/detail/CVE-2026-98091); updating is the complete fix because it moves the device detachment under chunk_mutex before release. Where an immediate kernel update is not possible, interim measures that reduce exposure follow directly from the exploitation prerequisites: restrict CAP_SYS_ADMIN to trusted operators and avoid adding devices to sprout filesystems created from read-only seeds on affected kernels, since the bug requires that specific seed/sprout device-addition path - the trade-off is that legitimate capacity expansion on such filesystems must be deferred until patched. Monitoring dmesg for the btrfs_free_device() warning and for transaction abort messages during btrfs device add operations provides an early indicator that the vulnerable path has been hit, though it detects rather than prevents the crash.
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
btrfs supports a seed/sprout model in which a writable filesystem (the sprout) is created on top of a read-only seed device. When the first metadata chunk for a sprout is created, create_chunk() links the newly added device into the running transaction's dev_update_list by way of device->post_commit_list. If the subsequent system chunk creation then fails, btrfs_init_new_device() aborts the transaction and releases the device while post_commit_list is still linked, so the transaction list retains a reference to freed memory. This is a classic CWE-416 use-after-free: the dangling list node trips a warning in btrfs_free_device() and leaves freed memory reachable through the transaction's update list. The upstream fix detaches the device from the list under chunk_mutex before the device is released, closing the window between chunk-creation failure and device teardown. CPE data identifies the Linux kernel (cpe:2.3:a:linux:linux) as the affected product; per EUVD the issue is present from Linux 5.2 onward and is resolved by the stable commits referenced in the advisories.
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
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Device-add requires CAP_SYS_ADMIN (PR:H) and the fault depends on an attacker-uncontrolled chunk-creation failure on a sprout filesystem (AC:H); impact is crash-only, so C:N/I:N/A:H.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
In the Linux kernel, the following vulnerability has been resolved:
btrfs: detach failed sprout device from transaction update list
When creating the first metadata chunk for a sprout filesystem, create_chunk() adds the new device to the transaction dev_update_list through device->post_commit_list.
If the subsequent system chunk creation fails, btrfs_init_new_device() aborts the transaction and releases the device while post_commit_list is still linked. This triggers a warning in btrfs_free_device() and leaves the transaction list referencing freed memory.
Detach the device while holding chunk_mutex before releasing it.
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
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-86921
GHSA-frx7-8j8j-mc25
NVD
CVE.org
EPSS
Exploit-DB