First published: Tue Apr 02 2024(Updated: )
In the Linux kernel, the following vulnerability has been resolved: blk-mq: fix IO hang from sbitmap wakeup race In blk_mq_mark_tag_wait(), __add_wait_queue() may be re-ordered with the following blk_mq_get_driver_tag() in case of getting driver tag failure. Then in __sbitmap_queue_wake_up(), waitqueue_active() may not observe the added waiter in blk_mq_mark_tag_wait() and wake up nothing, meantime blk_mq_mark_tag_wait() can't get driver tag successfully. This issue can be reproduced by running the following test in loop, and fio hang can be observed in < 30min when running it on my test VM in laptop. modprobe -r scsi_debug modprobe scsi_debug delay=0 dev_size_mb=4096 max_queue=1 host_max_queue=1 submit_queues=4 dev=`ls -d /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*/block/* | head -1 | xargs basename` fio --filename=/dev/"$dev" --direct=1 --rw=randrw --bs=4k --iodepth=1 \ --runtime=100 --numjobs=40 --time_based --name=test \ --ioengine=libaio Fix the issue by adding one explicit barrier in blk_mq_mark_tag_wait(), which is just fine in case of running out of tag.
Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Software | Affected Version | How to fix |
---|---|---|
redhat/kernel | <4.19.307 | 4.19.307 |
redhat/kernel | <5.4.269 | 5.4.269 |
redhat/kernel | <5.10.210 | 5.10.210 |
redhat/kernel | <5.15.149 | 5.15.149 |
redhat/kernel | <6.1.77 | 6.1.77 |
redhat/kernel | <6.6.16 | 6.6.16 |
redhat/kernel | <6.7.4 | 6.7.4 |
redhat/kernel | <6.8 | 6.8 |
debian/linux | 5.10.223-1 5.10.226-1 6.1.123-1 6.1.119-1 6.12.10-1 6.12.11-1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2024-26671 is considered a medium severity vulnerability affecting the Linux kernel.
To fix CVE-2024-26671, update the Linux kernel to the fixed versions specified in the vulnerability details.
CVE-2024-26671 affects various versions of the Linux kernel, including versions prior to 4.19.307, 5.4.269, 5.10.210, 5.15.149, 6.1.77, 6.6.16, 6.7.4, and 6.8.
Systems running vulnerable versions of the Linux kernel on Red Hat and Debian distributions are impacted by CVE-2024-26671.
Exploiting CVE-2024-26671 may lead to an IO hang due to race conditions in the block layer of the Linux kernel.