In the Linux kernel, the following vulnerability has been resolved:
block: fix request.queuelist usage in flush
Friedrich Weber reported a kernel crash problem and bisected to commit 81ada09cc25e ("blk-flush: reuse rq queuelist in flush state machine").
The root cause is that we use "list_move_tail(&rq->queuelist, pending)" in the PREFLUSH/POSTFLUSH sequences. But rq->queuelist.next == xxx since it's popped out from plug->cached_rq in __blk_mq_alloc_requests_batch(). We don't initialize its queuelist just for this first request, although the queuelist of all later popped requests will be initialized.
Fix it by changing to use "list_add_tail(&rq->queuelist, pending)" so rq->queuelist doesn't need to be initialized. It should be ok since rq can't be on any list when PREFLUSH or POSTFLUSH, has no move actually.
Please note the commit 81ada09cc25e ("blk-flush: reuse rq queuelist in flush state machine") also has another requirement that no drivers would touch rq->queuelist after blk_mq_end_request() since we will reuse it to add rq to the post-flush pending list in POSTFLUSH. If this is not true, we will have to revert that commit IMHO.
This updated version adds "list_del_init(&rq->queuelist)" in flush rq callback since the dm layer may submit request of a weird invalid format (REQ_FSEQ_PREFLUSH | REQ_FSEQ_POSTFLUSH), which causes double list_add if without this "list_del_init(&rq->queuelist)". The weird invalid format problem should be fixed in dm layer.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | Dec 5, 2024 | Jul 12, 2024 |
| Suse | — | Upgrade kernel-rt_debugUpgrade kernel-debug-develUpgrade kernel-develUpgrade kernel-default-extraUpgrade kernel-64kb-livepatch-develUpgrade kernel-sourceUpgrade cluster-md-kmp-rtUpgrade kernel-default-livepatchUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmall-vdsoUpgrade gfs2-kmp-64kbUpgrade dtb-amazonUpgrade dtb-amdUpgrade dtb-alteraUpgrade kernel-64kb-develUpgrade kernel-debugUpgrade kernel-azure-optionalUpgrade dlm-kmp-64kbUpgrade dtb-caviumUpgrade kernel-devel-azureUpgrade kernel-source-rtUpgrade kernel-macrosUpgrade dtb-hisiliconUpgrade kernel-default-vdsoUpgrade kernel-rtUpgrade kernel-rt_debug-develUpgrade kernel-source-azureUpgrade dtb-apmUpgrade dtb-qcomUpgrade dtb-broadcomUpgrade kernel-obs-qaUpgrade kernel-64kb-optionalUpgrade dtb-exynosUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-amlogicUpgrade kernel-docs-htmlUpgrade dtb-freescaleUpgrade dtb-marvellUpgrade dtb-lgUpgrade gfs2-kmp-azureUpgrade kernel-azure-extraUpgrade kernel-azure-livepatch-develUpgrade kernel-symsUpgrade kselftests-kmp-64kbUpgrade kernel-default-develUpgrade kernel-rt-optionalUpgrade kernel-syms-azureUpgrade kernel-azure-develUpgrade ocfs2-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade kernel-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-zfcpdumpUpgrade kselftests-kmp-azureUpgrade ocfs2-kmp-defaultUpgrade dtb-appleUpgrade kernel-kvmsmallUpgrade gfs2-kmp-rtUpgrade kernel-default-optionalUpgrade ocfs2-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-default-livepatch-develUpgrade kernel-source-vanillaUpgrade dtb-mediatekUpgrade reiserfs-kmp-defaultUpgrade dtb-armUpgrade cluster-md-kmp-defaultUpgrade kernel-default-baseUpgrade kernel-defaultUpgrade dtb-renesasUpgrade kernel-default-base-rebuildUpgrade dlm-kmp-azureUpgrade kernel-docsUpgrade dtb-xilinxUpgrade kernel-rt-vdsoUpgrade cluster-md-kmp-64kbUpgrade kselftests-kmp-defaultUpgrade reiserfs-kmp-azureUpgrade kselftests-kmp-rtUpgrade dtb-rockchipUpgrade kernel-debug-livepatch-develUpgrade kernel-azure-vdsoUpgrade gfs2-kmp-defaultUpgrade kernel-syms-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt-develUpgrade kernel-devel-rtUpgrade dtb-allwinnerUpgrade reiserfs-kmp-rtUpgrade kernel-azureUpgrade dlm-kmp-defaultUpgrade dtb-sprdUpgrade kernel-obs-buildUpgrade kernel-debug-vdsoUpgrade kernel-64kb-extraUpgrade dlm-kmp-rtUpgrade ocfs2-kmp-azureUpgrade kernel-rt-extraUpgrade dtb-socionextUpgrade dtb-nvidia | Aug 8, 2024 | Jul 12, 2024 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1012-ibmUpgrade linux-image-awsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gkeUpgrade linux-image-oem-22.04dUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-44-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1010-gkeUpgrade linux-image-6.8.0-1013-nvidia-lowlatencyUpgrade linux-image-6.8.0-1015-awsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1012-oracleUpgrade linux-image-6.8.0-1013-nvidiaUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1014-azure-fdeUpgrade linux-image-virtualUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1013-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1011-raspiUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-44-lowlatencyUpgrade linux-image-6.8.0-44-generic-64kUpgrade linux-image-genericUpgrade linux-image-azure-fdeUpgrade linux-image-ibmUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-45-genericUpgrade linux-image-lowlatency-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1013-nvidia-64kUpgrade linux-image-6.8.0-44-genericUpgrade linux-image-6.8.0-1012-oemUpgrade linux-image-6.8.0-1012-oracle-64kUpgrade linux-image-6.8.0-45-generic-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64kUpgrade linux-image-azureUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1014-gcpUpgrade linux-image-6.8.0-1014-azureUpgrade linux-image-nvidiaUpgrade linux-image-ibm-classicUpgrade linux-image-oem-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-gcp | Sep 12, 2024 | Jul 12, 2024 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub