CVE-2026-93798: btrfs: fix reloc root cleanup in merge_reloc_roots()

Published Sep 24, 2026
·
Updated

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

btrfs: fix reloc root cleanup in mergerelocroots()

If the root we got has zero root refs in its root item, we are resetting the root's ->relocroot without using barriers like we do everywhere else. Sashiko complained about this while reviewing another patch, and it's correct (see the Link tag below).

Also, we should not clear BTRFSROOTDEADRELOCTREE from the root unless the root points to the reloc root we have.

Fix this by using clearrelocroot(), which issues the memory barrier after setting the root's ->relocroot to NULL and before clearing the bit BTRFSROOTDEADRELOCTREE from the root.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    In btrfs merge_reloc_roots() cleanup, use clear_reloc_root() instead of clearing BTRFS_ROOT_DEAD_RELOC_TREE directly, so the required memory barrier is issued after setting the root's ->reloc_root to NULL and before clearing the bit.

Event History

Sep 24, 2026
CVE Published
via MITRE·04:02 PM
Data Sourced
via MITRE·04:02 PM
Description
Data Sourced
via NVD·05:17 PM
Description

Frequently Asked Questions

1

What runtime condition reaches the affected cleanup path?

The issue occurs when merge_reloc_roots() obtains a root whose root item has zero root references. The affected logic handles that root's relocation-root cleanup.

2

What does the corrected cleanup sequence do differently?

It uses clear_reloc_root() to set the root's reloc_root pointer to NULL, issue a memory barrier, and then clear BTRFS_ROOT_DEAD_RELOC_TREE. The flag is cleared only when the root points to the relocation root being processed.

3

How can maintainers check whether their kernel source includes the fix?

Check whether the relevant merge_reloc_roots() cleanup uses clear_reloc_root() rather than directly resetting reloc_root and clearing BTRFS_ROOT_DEAD_RELOC_TREE. The listed stable references identify commits containing the correction.

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