btrfs: fix reloc root cleanup in merge_reloc_roots()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.5, 5.8, 5.10.271, 5.15.222, 6.1.189, and 3 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix reloc root cleanup in merge_reloc_roots() If the root we got has zero root refs in its root item, we are resetting the root's ->reloc_root 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 BTRFS_ROOT_DEAD_RELOC_TREE from the root unless the root points to the reloc root we have. Fix this by using clear_reloc_root(), which issues the memory barrier after setting the root's ->reloc_root to NULL and before clearing the bit BTRFS_ROOT_DEAD_RELOC_TREE from the root.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in 29531470b1bf1e8bd2df4941fe913106edbca615; From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in 415f8665a969d3c906e4fd7c90fcbb4b357886f6; From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in ee695a968aa73b1e67ccbf2133dc0e54381d32b2; From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in 0bc25f0a2d1b3e0a691431c4d7aef36afcd527c5; From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in ab48583aa9948205ff9a6470e23dbff74c565e24; From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in 63d6b1f04cd91c825329712aa526215ffa5d11ca; From 1dae7e0e58b484eaa43d530f211098fdeeb0f404 · fixed in b78fe9563e2d5ae47805f1e5dc722c91fd30e1f8; From 5.4.54 · fixed in 5.5; From 5.7.11 · fixed in 5.8
- Linux Linux
5.8
- KernelLinux
From 5.8.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53
References 7
git.kernel.org
- stable/c/29531470b1bf1e8bd2df4941fe913106edbca615
- stable/c/415f8665a969d3c906e4fd7c90fcbb4b357886f6
- stable/c/ee695a968aa73b1e67ccbf2133dc0e54381d32b2
- stable/c/0bc25f0a2d1b3e0a691431c4d7aef36afcd527c5
- stable/c/ab48583aa9948205ff9a6470e23dbff74c565e24
- stable/c/63d6b1f04cd91c825329712aa526215ffa5d11ca
- stable/c/b78fe9563e2d5ae47805f1e5dc722c91fd30e1f8