CVE-2026-98083 in Linuxinfo

Summary

by MITRE • 09/25/2026

In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix transaction use-after-free in raid stripe insertion

If allocation of a RAID stripe extent fails, btrfs_insert_one_raid_extent() aborts and ends the transaction before returning -ENOMEM.

btrfs_finish_one_ordered(), the production caller through btrfs_insert_raid_extent(), still owns the transaction handle. It handles the error by aborting the transaction and then reaches the common exit path, which ends the transaction again.

The premature end can free the handle and drop its transaction reference. Transaction cleanup can then free the transaction before the caller's second abort accesses the handle and transaction, resulting in use-after-free.

Keep the abort at the failure site, but let the caller's common exit path end the transaction once, after it has finished using both objects.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 09/25/2026

The vulnerability identified as a use-after-free flaw within the Linux kernel’s btrfs file system arises from improper handling of transaction states during RAID stripe extent allocation failures. Specifically, the function btrfs_insert_one_raid_extent() is responsible for inserting RAID stripe extents into the filesystem metadata. When an attempt to allocate memory for such an extent fails due to insufficient resources, indicated by a return value of -ENOMEM, this function currently aborts the ongoing transaction and terminates it before returning control to its caller. This premature termination releases references held by the transaction object, potentially freeing associated memory structures that are still in active use elsewhere within the kernel execution context.

The root cause lies in the interaction between btrfs_insert_one_raid_extent() and its primary caller, btrfs_finish_one_ordered(). Upon encountering an error from the insertion function, btrfs_finish_one_ordered() also attempts to abort and end the transaction as part of its standard error handling routine via a common exit path. Because the inner function has already ended the transaction, this second attempt results in accessing memory that may have been freed by the initial termination sequence. This double-free or use-after-free scenario corrupts kernel memory state, leading to undefined behavior that can manifest as system crashes, data corruption within the btrfs filesystem, or potentially exploitable conditions for privilege escalation if an attacker can trigger repeated allocation failures under specific timing constraints.

From a classification perspective, this defect aligns with CWE-416, Use After Free, where memory is accessed after it has been freed, leading to unpredictable behavior and potential security breaches. In the context of attack vectors, such kernel-level vulnerabilities often relate to CWE-787 or are leveraged in conjunction with local privilege escalation techniques documented under MITRE ATT&CK tactic TA0004, specifically referencing methods that exploit memory corruption flaws within operating system kernels to gain elevated access rights. The flaw represents a classic race condition-like logic error where reference counting and lifecycle management of kernel objects are not strictly synchronized across function boundaries during error paths.

The operational impact of this vulnerability includes potential denial of service through kernel panics or oops messages, which disrupts availability for systems relying on btrfs with RAID configurations. Furthermore, the memory corruption aspect poses a significant risk to data integrity and confidentiality if an attacker can manipulate allocation patterns to exploit the freed memory region before it is reallocated for other purposes. Mitigation strategies primarily involve applying vendor-provided kernel patches that correct the transaction handling logic. The fix ensures that btrfs_insert_one_raid_extent() retains responsibility only for aborting on failure without terminating the transaction, allowing btrfs_finish_one_ordered() to manage the final cleanup after all necessary operations are complete. System administrators should ensure their kernels are updated to versions containing this specific patch and monitor system logs for signs of memory corruption or unexpected reboots associated with heavy I/O workloads that might trigger allocation failures in RAID stripe management routines.

Responsible

Linux

Reservation

09/25/2026

Disclosure

09/25/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!