In the Linux kernel, the following vulnerability has been resolved:
scsi: core: sysfs: Fix hang when device state is set via sysfs
This fixes a regression added with:
commit f0f82e2476f6 ("scsi: core: Fix capacity set to zero after offlinining device")
The problem is that after iSCSI recovery, iscsid will call into the kernel to set the dev's state to running, and with that patch we now call scsi_rescan_device() with the state_mutex held. If the SCSI error handler thread is just starting to test the device in scsi_send_eh_cmnd() then it's going to try to grab the state_mutex.
We are then stuck, because when scsi_rescan_device() tries to send its I/O scsi_queue_rq() calls -> scsi_host_queue_ready() -> scsi_host_in_recovery() which will return true (the host state is still in recovery) and I/O will just be requeued. scsi_send_eh_cmnd() will then never be able to grab the state_mutex to finish error handling.
To prevent the deadlock move the rescan-related code to after we drop the state_mutex.
This also adds a check for if we are already in the running state. This prevents extra scans and helps the iscsid case where if the transport class has already onlined the device during its recovery process then we don't need userspace to do it again plus possibly block that daemon.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernelUpgrade bpftoolUpgrade kernel-debuginfoUpgrade kernel-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.10.82-83.359Upgrade kernel-tools-debuginfoUpgrade python-perfUpgrade bpftool-debuginfoUpgrade perf-debuginfoUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade python-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-tools-develUpgrade kernel-headers | Aug 28, 2024 | Apr 10, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 10, 2024 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Apr 10, 2024 |
| Suse | — | Upgrade kernel-azure-optionalUpgrade ocfs2-kmp-rtUpgrade cluster-md-kmp-azureUpgrade dtb-amdUpgrade dtb-apmUpgrade reiserfs-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-source-azureUpgrade kernel-debugUpgrade kernel-64kbUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-socionextUpgrade kernel-azure-vdsoUpgrade dlm-kmp-defaultUpgrade kernel-rt-vdsoUpgrade gfs2-kmp-rtUpgrade kernel-kvmsmall-vdsoUpgrade kernel-default-develUpgrade dtb-alteraUpgrade kernel-64kb-develUpgrade dtb-appleUpgrade ocfs2-kmp-azureUpgrade dtb-amazonUpgrade kernel-macrosUpgrade kernel-debug-develUpgrade kernel-source-vanillaUpgrade ocfs2-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade dlm-kmp-64kbUpgrade kernel-64kb-optionalUpgrade dtb-hisiliconUpgrade kernel-zfcpdumpUpgrade dtb-lgUpgrade dtb-marvellUpgrade kernel-symsUpgrade kernel-rt_debug-vdsoUpgrade kernel-default-livepatchUpgrade kernel-default-livepatch-develUpgrade kernel-azure-extraUpgrade gfs2-kmp-64kbUpgrade dtb-renesasUpgrade kernel-64kb-livepatch-develUpgrade kernel-rt-optionalUpgrade kselftests-kmp-azureUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-64kbUpgrade kernel-obs-qaUpgrade kernel-rt_debugUpgrade dtb-freescaleUpgrade dtb-broadcomUpgrade reiserfs-kmp-defaultUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-caviumUpgrade kernel-source-rtUpgrade kernel-default-extraUpgrade kernel-rt-livepatch-develUpgrade kernel-syms-rtUpgrade kernel-preempt-develUpgrade gfs2-kmp-azureUpgrade kernel-debug-livepatch-develUpgrade kernel-default-baseUpgrade dtb-allwinnerUpgrade kernel-preemptUpgrade dlm-kmp-rtUpgrade kernel-default-base-rebuildUpgrade kernel-azure-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-obs-buildUpgrade kernel-rtUpgrade kernel-syms-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-default-optionalUpgrade dtb-amlogicUpgrade dtb-qcomUpgrade dtb-armUpgrade kernel-debug-vdsoUpgrade kernel-defaultUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-default-vdsoUpgrade dtb-xilinxUpgrade dtb-sprdUpgrade ocfs2-kmp-defaultUpgrade kernel-64kb-extraUpgrade kselftests-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-rt-develUpgrade kernel-devel-azureUpgrade reiserfs-kmp-azureUpgrade kernel-sourceUpgrade kernel-azureUpgrade dtb-mediatekUpgrade gfs2-kmp-defaultUpgrade kernel-azure-develUpgrade kernel-devel-rtUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kernel-develUpgrade kernel-rt-extraUpgrade dtb-rockchipUpgrade dtb-nvidiaUpgrade dtb-exynosUpgrade kernel-docs | Aug 9, 2024 | Apr 10, 2024 |
| Ubuntu | — | Upgrade linux-bluefieldUpgrade linux-awsUpgrade linux-fipsUpgrade linux-raspi-5.4Upgrade linux-gcpUpgrade linux-oracleUpgrade linux-kvmUpgrade linux-azure-5.4Upgrade linux-gkeopUpgrade linux-hwe-5.4Upgrade linux-raspiUpgrade linux-ibm-5.4Upgrade linux-azureUpgrade linux-gcp-5.4Upgrade linux-ibmUpgrade linux-aws-5.4Upgrade linux-oracle-5.4Upgrade linux | Nov 19, 2024 | Apr 10, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jan 20, 2025 | Apr 10, 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