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

Published Sep 25, 2026
·
Updated

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, btrfsinsertoneraidextent() aborts and ends the transaction before returning -ENOMEM.

btrfsfinishoneordered(), the production caller through btrfsinsertraidextent(), 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.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:24 AM
Data Sourced
via MITRE·10:24 AM
Description

Frequently Asked Questions

1

Under what conditions can this bug be triggered?

The failure path requires allocation of a RAID stripe extent to fail in Btrfs. The affected path is reached while finishing ordered work through btrfs_finish_one_ordered(), after btrfs_insert_one_raid_extent() returns -ENOMEM.

2

What is the practical impact of the faulty error handling?

A failed RAID stripe extent allocation can cause the transaction handle to be ended prematurely. Later cleanup may free the transaction before the caller performs its second abort, causing that abort to access freed transaction-handle and transaction objects.

3

Is an out-of-memory condition involved in exploitation or detection?

Yes. The described trigger is btrfs_insert_one_raid_extent() returning -ENOMEM because RAID stripe extent allocation failed. Systems experiencing allocation failures during this Btrfs ordered-work path are the relevant population for investigation.

4

What code behavior distinguishes the corrected implementation?

The failure site still aborts the transaction, but does not end it before returning. The caller's common exit path ends the transaction once, only after it has finished using the transaction handle and transaction objects.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203