CVE-2026-74555

CVE-2026-74555

published August 15, 2026

CVSS
—
EPSS
0%
Percentile
4.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

scsi: libsas: Fix HA resume deadlock and hisi_sas disk-wake race

Commit fbefe22811c3 ("scsi: libsas: Don't always drain event workqueue

for HA resume") introduced sas_resume_ha_no_sync() to avoid a deadlock:

the PHYE_RESUME_TIMEOUT handler, running on the HA event workqueue,

calls sas_deform_port() -> sas_destruct_devices(), which removes SCSI

devices and waits for the host to become runtime-active. But the host

cannot resume until sas_resume_ha() -> sas_drain_work() returns, and the

drain is blocked on that very handler.

However skipping the drain reintroduces a race: hisi_sas returns from

resume before all PHY UP work and libsas discovery work finish. The

controller may then autosuspend while disks are still waking up. The

disks issue IO to a suspended controller, the IO fails, and the disks

get disabled.

Fix the deadlock at its source by moving the PHYE_RESUME_TIMEOUT

notification to after sas_drain_work(). By then the host resume is about

to complete, so device removal through device_link no longer blocks on

the resume and the cycle is broken.

With the deadlock gone, restore sas_resume_ha() (the draining variant)

in hisi_sas and remove sas_resume_ha_no_sync().

The reorder is safe for the other libsas consumers (isci, pm8001,

aic94xx, mvsas). During suspend, sas_suspend_devices() calls

sas_notify_lldd_dev_gone() for each device, which sets dev->lldd_dev to

NULL. When scsi_unblock_requests re-enables I/O in resume, any I/O to a

timed-out phy's disk is immediately rejected by the LLDD before reaching

hardware: isci returns SAS_DEVICE_UNKNOWN (mapped to DID_BAD_TARGET),

and pm8001 returns SAS_PHY_DOWN (mapped to DID_NO_CONNECT). Both

complete directly via scsi_done() without entering SCSI EH. This is

identical in both the old and new ordering since lldd_dev_gone runs

during suspend, before resume. The reorder only affects when the

PHYE_RESUME_TIMEOUT handler runs (synchronized by sas_drain_work()

vs. asynchronous after resume returns), not whether I/O can reach the

device. aic94xx and mvsas do not register any PM ops and never reach

this code path.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00161 · 4.9th percentile
Published
2026-08-15T17:18Z
References (6)
EPSS history
Timeline
  • 15 AUG 12:28Z
    scsi: libsas: Fix HA resume deadlock and hisi_sas disk-wake race
    cvelistv5