High · published June 24, 2024
In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: fix list corruption from reorder of WRITE ->lqueued
__blkcg_rstat_flush() can be run anytime, especially when blk_cgroup_bio_start
is being executed.
If WRITE of `->lqueued` is re-ordered with READ of 'bisc->lnode.next' in
the loop of __blkcg_rstat_flush(), `next_bisc` can be assigned with one
stat instance being added in blk_cgroup_bio_start(), then the local
list in __blkcg_rstat_flush() could be corrupted.
Fix the issue by adding one barrier.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 6.2, < 6.6.33 | 6.6.33 |
| linux/linux_kernel | ≥ 6.7, < 6.9.4 | 6.9.4 |