CVE-2026-74754 PUBLISHED

scsi: core: pair EH runtime PM get and put

Assigner: Linux
Reserved: 15.08.2026 Published: 26.08.2026 Updated: 26.08.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from ae0751ffc77e7f21629970fdab5528c573e637f8 to e83eed1bea142c8fe852fd53156845b88252ecd8 (excl.)
  • affected from ae0751ffc77e7f21629970fdab5528c573e637f8 to 872f486259ae0bc6b73ca4735a15d013241f73e9 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.3 is affected
  • unaffected from 0 to 3.3 (excl.)
  • unaffected from 7.1.10 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References