scsi: core: Run queues for all non-SDEV_DEL devices from scsi_run_host_queues
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.143, 6.12.93, 6.18.35, 7.0.12
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: core: Run queues for all non-SDEV_DEL devices from scsi_run_host_queues While a SCSI host is in a recovery state, scsi_mq_requeue_cmd() will not set the requeue list for a requeued command to be kicked in the future. The expectation is a call to scsi_run_host_queues() will kick all SCSI devices once the recovery state is cleared. However, scsi_run_host_queues() uses shost_for_each_device() which uses scsi_device_get() and so will ignore devices in a partially removed state like SDEV_CANCEL. But these devices may also have requeued requests, leaving their requests stuck from not being kicked and causing the removal process of the device to hang. scsi_run_host_queues() needs to run against more devices than the macro shost_for_each_device() allows. Instead of using the too limiting scsi_device_get() state checks, only ignore devices in SDEV_DEL state or when unable to acquire a reference. Attempt to run the queues for all other devices when scsi_run_host_queues() is called.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 8b566edbdbfb5cde31a322c57932694ff48125ed · fixed in 15fb19af49f2073ed77fad16aaabc648b0ca6800; From 8b566edbdbfb5cde31a322c57932694ff48125ed · fixed in d4dddfecdbb5467bef158d4e1486459808357fef; From 8b566edbdbfb5cde31a322c57932694ff48125ed · fixed in 475f2b37a78f4c698967a7f14f325f04e24c9175; From 8b566edbdbfb5cde31a322c57932694ff48125ed · fixed in c740e13e7fe32d8e4d9a1699f65b8daf6709895a; From 8b566edbdbfb5cde31a322c57932694ff48125ed · fixed in 7205b58702273baf21d6ba7992e6ba15852325f7
- Linux Linux
6.5
- KernelLinux
From 6.5.0 · fixed in 6.6.143; From 6.7.0 · fixed in 6.12.93; From 6.13.0 · fixed in 6.18.35; From 6.19.0 · fixed in 7.0.12