CVEvulnerability
CVE-2026-74754
- Status
- Received
- Published
- 2026-08-26
- Last modified
- 2026-10-21
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Description
In the Linux kernel, the following vulnerability has been resolved:
scsi: core: pair EH runtime PM get and put
shost->eh_noresume is currently consulted twice in one error handling
iteration: once before scsi_autopm_get_host() and once again before
scsi_autopm_put_host().
That is racy when a PM-triggered error path flips shost->eh_noresume
while the SCSI EH thread is still running.
The problem flow looks like this:
PM path
ufshcd_set_dev_pwr_mode()
shost->eh_noresume = 1
ufshcd_execute_start_stop <-- trigger EH
...
shost->eh_noresume = 0
EH path
scsi_error_handler()
if (!shost->eh_noresume)
scsi_autopm_get_host() <-- skipped
...
if (!shost->eh_noresume)
scsi_autopm_put_host() <-- executed later
In that case one EH iteration can skip autoresume on entry and still
drop a runtime PM reference on exit. That leaves an unmatched runtime PM
put and can trigger a runtime PM usage count underflow.
Fix this by making eh_noresume a regular bool so it can be accessed with
READ_ONCE() and WRITE_ONCE(). Snapshot it once per EH iteration and use
that snapshot for both runtime PM get and put decisions.
References
- https://git.kernel.org/stable/c/0038a2a75a15d163f428c93103c6d02d4d231a7a git.kernel.org
- https://git.kernel.org/stable/c/1ec5f6aa38ea990af37c49af7a4bb3db00da7f9d git.kernel.org
- https://git.kernel.org/stable/c/872f486259ae0bc6b73ca4735a15d013241f73e9 git.kernel.org
- https://git.kernel.org/stable/c/e83eed1bea142c8fe852fd53156845b88252ecd8 git.kernel.org
- https://git.kernel.org/stable/c/fdc93f4a801077efbf1b87570ade8d8f325de62f git.kernel.org