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.
CVSS Details
- CVSS 3.1 Base Score: 5.3
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade bpftoolUpgrade kernel-livepatch-5.10.82-83.359Upgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade python-perfUpgrade kernel-develUpgrade kernelUpgrade perf-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade python-perf-debuginfoUpgrade perfUpgrade kernel-tools-develUpgrade kernel-toolsUpgrade 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-default-develUpgrade kernel-rt-vdsoUpgrade kernel-kvmsmall-develUpgrade kernel-64kbUpgrade kernel-debugUpgrade kernel-source-azureUpgrade dtb-hisiliconUpgrade ocfs2-kmp-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docs-htmlUpgrade dtb-socionextUpgrade kernel-64kb-develUpgrade kernel-azure-vdsoUpgrade cluster-md-kmp-azureUpgrade gfs2-kmp-rtUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade dtb-amdUpgrade dtb-apmUpgrade kernel-symsUpgrade kernel-macrosUpgrade kernel-debug-develUpgrade kernel-64kb-optionalUpgrade kernel-source-vanillaUpgrade kernel-rt_debug-vdsoUpgrade dtb-appleUpgrade kernel-zfcpdumpUpgrade dtb-lgUpgrade kernel-rt_debugUpgrade dtb-amazonUpgrade kernel-default-livepatch-develUpgrade kernel-default-baseUpgrade dtb-marvellUpgrade gfs2-kmp-64kbUpgrade kernel-rt_debug-livepatch-develUpgrade reiserfs-kmp-64kbUpgrade dtb-renesasUpgrade dlm-kmp-64kbUpgrade kernel-default-extraUpgrade kernel-rt-livepatch-develUpgrade kernel-syms-rtUpgrade kselftests-kmp-azureUpgrade dtb-freescaleUpgrade kernel-azure-extraUpgrade kernel-preempt-develUpgrade kernel-source-rtUpgrade kernel-azure-optionalUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-64kb-livepatch-develUpgrade ocfs2-kmp-64kbUpgrade kernel-default-livepatchUpgrade reiserfs-kmp-defaultUpgrade kernel-debug-livepatch-develUpgrade kernel-rt_debug-develUpgrade gfs2-kmp-azureUpgrade dtb-caviumUpgrade kernel-rt-optionalUpgrade dtb-alteraUpgrade dtb-broadcomUpgrade kernel-debug-vdsoUpgrade dtb-xilinxUpgrade dtb-sprdUpgrade kernel-kvmsmallUpgrade kernel-default-vdsoUpgrade dtb-allwinnerUpgrade dtb-qcomUpgrade kernel-rt-extraUpgrade kernel-develUpgrade dtb-rockchipUpgrade dtb-mediatekUpgrade kernel-64kb-extraUpgrade gfs2-kmp-defaultUpgrade dlm-kmp-rtUpgrade dtb-exynosUpgrade kernel-syms-azureUpgrade cluster-md-kmp-rtUpgrade kernel-rtUpgrade kernel-devel-rtUpgrade dtb-armUpgrade kernel-azureUpgrade kernel-devel-azureUpgrade reiserfs-kmp-azureUpgrade kernel-azure-develUpgrade kselftests-kmp-rtUpgrade kernel-default-base-rebuildUpgrade kernel-sourceUpgrade kernel-obs-buildUpgrade kselftests-kmp-defaultUpgrade cluster-md-kmp-defaultUpgrade dlm-kmp-azureUpgrade dtb-amlogicUpgrade kernel-default-optionalUpgrade kernel-rt-develUpgrade kernel-preemptUpgrade dtb-nvidiaUpgrade kernel-azure-livepatch-develUpgrade kernel-docsUpgrade cluster-md-kmp-64kbUpgrade kernel-defaultUpgrade ocfs2-kmp-defaultUpgrade kernel-rt-livepatch | Aug 9, 2024 | Apr 10, 2024 |
| Ubuntu | — | Upgrade linux-aws-5.4Upgrade linux-gkeopUpgrade linux-ibmUpgrade linux-azure-5.4Upgrade linux-gcp-5.4Upgrade linux-raspiUpgrade linux-ibm-5.4Upgrade linuxUpgrade linux-hwe-5.4Upgrade linux-azureUpgrade linux-oracle-5.4Upgrade linux-bluefieldUpgrade linux-awsUpgrade linux-gcpUpgrade linux-fipsUpgrade linux-raspi-5.4Upgrade linux-kvmUpgrade linux-oracle | 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 |
Prioritise with Active Threat Intelligence
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