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 bpftool-debuginfoUpgrade kernel-livepatch-5.10.82-83.359Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-develUpgrade bpftoolUpgrade python-perfUpgrade kernel-debuginfoUpgrade kernelUpgrade kernel-tools-develUpgrade kernel-headersUpgrade python-perf-debuginfoUpgrade kernel-toolsUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade perf-debuginfo | 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 reiserfs-kmp-rtUpgrade ocfs2-kmp-rtUpgrade kernel-debugUpgrade kernel-kvmsmall-vdsoUpgrade dtb-lgUpgrade cluster-md-kmp-azureUpgrade reiserfs-kmp-64kbUpgrade kernel-default-extraUpgrade kernel-source-rtUpgrade kernel-rt-livepatch-develUpgrade kselftests-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-rt-optionalUpgrade dtb-alteraUpgrade kernel-syms-rtUpgrade kernel-docs-htmlUpgrade kernel-kvmsmall-develUpgrade dtb-amdUpgrade kernel-default-develUpgrade kernel-rt-vdsoUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-symsUpgrade dlm-kmp-64kbUpgrade kernel-azure-extraUpgrade kernel-default-livepatchUpgrade kernel-obs-qaUpgrade kernel-preempt-develUpgrade kselftests-kmp-64kbUpgrade kernel-azure-optionalUpgrade dtb-renesasUpgrade kernel-64kb-optionalUpgrade kernel-zfcpdumpUpgrade kernel-rt_debugUpgrade kernel-debug-develUpgrade kernel-default-baseUpgrade kernel-rt_debug-develUpgrade gfs2-kmp-azureUpgrade dtb-caviumUpgrade ocfs2-kmp-64kbUpgrade dtb-amazonUpgrade gfs2-kmp-64kbUpgrade kernel-default-livepatch-develUpgrade dtb-hisiliconUpgrade gfs2-kmp-rtUpgrade dtb-marvellUpgrade kernel-macrosUpgrade dlm-kmp-defaultUpgrade dtb-apmUpgrade dtb-appleUpgrade dtb-socionextUpgrade kernel-rt_debug-livepatch-develUpgrade ocfs2-kmp-azureUpgrade kernel-source-azureUpgrade kernel-source-vanillaUpgrade kernel-debug-livepatch-develUpgrade dtb-freescaleUpgrade dtb-broadcomUpgrade kernel-64kb-livepatch-develUpgrade kernel-azure-vdsoUpgrade kernel-64kb-develUpgrade kernel-64kbUpgrade dtb-xilinxUpgrade kernel-defaultUpgrade dtb-amlogicUpgrade kernel-develUpgrade dtb-allwinnerUpgrade kernel-obs-buildUpgrade kernel-preemptUpgrade kernel-syms-azureUpgrade kernel-azure-develUpgrade kernel-default-base-rebuildUpgrade kernel-sourceUpgrade dtb-qcomUpgrade kernel-rt-develUpgrade kselftests-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade cluster-md-kmp-rtUpgrade cluster-md-kmp-defaultUpgrade kernel-rtUpgrade dtb-exynosUpgrade kselftests-kmp-defaultUpgrade kernel-docsUpgrade dlm-kmp-azureUpgrade kernel-default-optionalUpgrade reiserfs-kmp-azureUpgrade kernel-kvmsmallUpgrade dtb-armUpgrade dtb-nvidiaUpgrade kernel-devel-rtUpgrade gfs2-kmp-defaultUpgrade kernel-azureUpgrade kernel-64kb-extraUpgrade kernel-devel-azureUpgrade dlm-kmp-rtUpgrade dtb-mediatekUpgrade dtb-rockchipUpgrade kernel-rt-extraUpgrade kernel-rt-livepatchUpgrade ocfs2-kmp-defaultUpgrade kernel-default-vdsoUpgrade kernel-debug-vdsoUpgrade dtb-sprdUpgrade cluster-md-kmp-64kb | Aug 9, 2024 | Apr 10, 2024 |
| Ubuntu | — | Upgrade linux-oracleUpgrade linux-awsUpgrade linux-kvmUpgrade linux-fipsUpgrade linux-gcpUpgrade linux-bluefieldUpgrade linux-raspi-5.4Upgrade linux-azure-5.4Upgrade linuxUpgrade linux-aws-5.4Upgrade linux-azureUpgrade linux-gcp-5.4Upgrade linux-raspiUpgrade linux-hwe-5.4Upgrade linux-ibm-5.4Upgrade linux-oracle-5.4Upgrade linux-ibmUpgrade linux-gkeop | 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