ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
- 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 4.19.308, 5.4.270, 5.10.211, 5.15.150, 6.1.80, and 2 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
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found() Determine if the group block bitmap is corrupted before using ac_b_ex in ext4_mb_try_best_found() to avoid allocating blocks from a group with a corrupted block bitmap in the following concurrency and making the situation worse. ext4_mb_regular_allocator ext4_lock_group(sb, group) ext4_mb_good_group // check if the group bbitmap is corrupted ext4_mb_complex_scan_group // Scan group gets ac_b_ex but doesn't use it ext4_unlock_group(sb, group) ext4_mark_group_bitmap_corrupted(group) // The block bitmap was corrupted during // the group unlock gap. ext4_mb_try_best_found ext4_lock_group(ac->ac_sb, group) ext4_mb_use_best_found mb_mark_used // Allocating blocks in block bitmap corrupted group
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in 21f8cfe79f776287459343e9cfa6055af61328ea; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in 260fc96283c0f594de18a1b045faf6d8fb42874d; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in 927794a02169778c9c2e7b25c768ab3ea8c1dc03; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in 4c21fa60a6f4606f6214a38f50612b17b2f738f5; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in f97e75fa4e12b0aa0224e83fcbda8853ac2adf36; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in 0184747b552d6b5a14db3b7fcc3b792ce64dedd1; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in a2576ae9a35c078e488f2c573e9e6821d651fbbe; From 163a203ddb36c36d4a1c942aececda0cc8d06aa7 · fixed in 4530b3660d396a646aad91a787b6ab37cf604b53
- Linux Linux
3.12
- KernelLinux
From 3.12.0 · fixed in 4.19.308; From 4.20.0 · fixed in 5.4.270; From 5.5.0 · fixed in 5.10.211; From 5.11.0 · fixed in 5.15.150; From 5.16.0 · fixed in 6.1.80; From 6.2.0 · fixed in 6.6.19; From 6.7.0 · fixed in 6.7.7
References 8
git.kernel.org
- stable/c/21f8cfe79f776287459343e9cfa6055af61328ea
- stable/c/260fc96283c0f594de18a1b045faf6d8fb42874d
- stable/c/927794a02169778c9c2e7b25c768ab3ea8c1dc03
- stable/c/4c21fa60a6f4606f6214a38f50612b17b2f738f5
- stable/c/f97e75fa4e12b0aa0224e83fcbda8853ac2adf36
- stable/c/0184747b552d6b5a14db3b7fcc3b792ce64dedd1
- stable/c/a2576ae9a35c078e488f2c573e9e6821d651fbbe
- stable/c/4530b3660d396a646aad91a787b6ab37cf604b53