CVE-2023-53183
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
15/09/2025
Last modified:
15/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
btrfs: exit gracefully if reloc roots don&#39;t match<br />
<br />
[BUG]<br />
Syzbot reported a crash that an ASSERT() got triggered inside<br />
prepare_to_merge().<br />
<br />
[CAUSE]<br />
The root cause of the triggered ASSERT() is we can have a race between<br />
quota tree creation and relocation.<br />
<br />
This leads us to create a duplicated quota tree in the<br />
btrfs_read_fs_root() path, and since it&#39;s treated as fs tree, it would<br />
have ROOT_SHAREABLE flag, causing us to create a reloc tree for it.<br />
<br />
The bug itself is fixed by a dedicated patch for it, but this already<br />
taught us the ASSERT() is not something straightforward for<br />
developers.<br />
<br />
[ENHANCEMENT]<br />
Instead of using an ASSERT(), let&#39;s handle it gracefully and output<br />
extra info about the mismatch reloc roots to help debug.<br />
<br />
Also with the above ASSERT() removed, we can trigger ASSERT(0)s inside<br />
merge_reloc_roots() later.<br />
Also replace those ASSERT(0)s with WARN_ON()s.