CVE-2026-74754 in Linux
Сводка
по VulDB • 26.08.2026
В ядре Linux была устранена следующая уязвимость:
scsi: core: корректная пара вызовов получения и освобождения Runtime Power Management (PM) во время обработки ошибок (EH).
Флаг shost->eh_noresume в настоящее время проверяется дважды за одну итерацию обработки ошибки: один раз перед вызовом scsi_autopm_get_host() и еще раз перед вызовом scsi_autopm_put_host().
Это создает условие гонки (race condition), когда путь, инициированный управлением питанием (PM), изменяет значение shost->eh_noresume в то время, как поток обработки ошибок SCSI (SCSI EH thread) все еще работает.
Сценарий возникновения проблемы выглядит следующим образом: Путь PM (Power Management): ufshcd_set_dev_pwr_mode() shost->eh_noresume = 1 ufshcd_execute_start_stop <-- триггер обработки ошибок (EH) ... shost->eh_noresume = 0
Путь EH (Error Handling): scsi_error_handler() if (!shost->eh_noresume) scsi_autopm_get_host() <-- пропускается ... if (!shost->eh_noresume) scsi_autopm_put_host() <-- выполняется позже
В этом случае одна итерация EH может пропустить автоматическое пробуждение (autoresume) при входе, но все равно выполнить освобождение ссылки Runtime PM при выходе. Это приводит к несоответствующему вызову put для Runtime PM и может вызвать переполнение вниз счетчика использования Runtime PM (runtime PM usage count underflow).
Исправление заключается в том, чтобы сделать eh_noresume обычной логической переменной (bool), доступ к которой осуществляется с помощью макросов READ_ONCE() и WRITE_ONCE(). Значение фиксируется один раз за каждую итерацию EH, и этот снимок состояния используется для принятия решений как о получении (get), так и об освобождении (put) ссылки Runtime PM.
VulDB is the best source for vulnerability data and more expert information about this specific topic.