CVE-2023-53618

btrfs: reject invalid reloc tree root keys with stack dump

State
Published
Severity
Not scored
Published
Oct 7, 2025
Updated
May 23, 2026
Reserved
Oct 7, 2025

Read the record on cve.org

Description

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

btrfs: reject invalid reloc tree root keys with stack dump

[BUG] Syzbot reported a crash that an ASSERT() got triggered inside prepare_to_merge().

That ASSERT() makes sure the reloc tree is properly pointed back by its subvolume tree.

[CAUSE] After more debugging output, it turns out we had an invalid reloc tree:

BTRFS error (device loop1): reloc tree mismatch, root 8 has no reloc root, expect reloc root key (-8, 132, 8) gen 17

Note the above root key is (TREE_RELOC_OBJECTID, ROOT_ITEM, QUOTA_TREE_OBJECTID), meaning it's a reloc tree for quota tree.

But reloc trees can only exist for subvolumes, as for non-subvolume trees, we just COW the involved tree block, no need to create a reloc tree since those tree blocks won't be shared with other trees.

Only subvolumes tree can share tree blocks with other trees (thus they have BTRFS_ROOT_SHAREABLE flag).

Thus this new debug output proves my previous assumption that corrupted on-disk data can trigger that ASSERT().

[FIX] Besides the dedicated fix and the graceful exit, also let tree-checker to check such root keys, to make sure reloc trees can only exist for subvolumes.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 259ee7754b6793af8bdd77f9ca818bc41cfe9541 to before 314135b7bae9618a317874ae195272682cf2d5d4Affected
  • 259ee7754b6793af8bdd77f9ca818bc41cfe9541 to before 3ae93b316ca4b8b3c33798ef1d210355f2fb9318Affected
  • 259ee7754b6793af8bdd77f9ca818bc41cfe9541 to before 84256e00eeca73c529fc6196e478cc89b8098157Affected
  • 259ee7754b6793af8bdd77f9ca818bc41cfe9541 to before 6ebcd021c92b8e4b904552e4d87283032100796dAffected
  • 3d95c52d789ca99e344061d7f6dadb2519adbcf5Affected
  • fba904d68c8bbfcc89c2210cfcb2351be90bc3e5Affected
  • 5.2.19 to before 5.3Affected
  • 5.3.4 to before 5.4Affected
LinuxLinux
  • 5.4Affected
  • before 5.4Not affected
  • 5.15.127 through 5.15.*Not affected
  • 6.1.46 through 6.1.*Not affected
  • 6.4.11 through 6.4.*Not affected
  • 6.5 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.