CVE-2026-74754 in Linux
요약
\~에 의해 VulDB • 2026. 08. 26.
리눅스 커널에서 다음 취약점이 해결되었습니다:
scsi: core: EH 런타임 PM get 및 put 쌍 처리
shost->eh_noresume는 현재 하나의 에러 핸들링 반복(iteration) 동안 두 번 참조됩니다: scsi_autopm_get_host() 호출 전과 scsi_autopm_put_host() 호출 전에 각각 한 번씩입니다.
이는 PM(전력 관리) 트리거된 에러 경로가 SCSI EH 스레드가 여전히 실행 중인 동안 shost->eh_noresume 값을 변경할 때 경쟁 조건(race condition)을 유발합니다.
문제가 발생하는 흐름은 다음과 같습니다: PM 경로 ufshcd_set_dev_pwr_mode() shost->eh_noresume = 1 ufshcd_execute_start_stop <-- EH 트리거 ... shost->eh_noresume = 0
EH 경로 scsi_error_handler() if (!shost->eh_noresume) scsi_autopm_get_host() <-- 생략됨 ... if (!shost->eh_noresume) scsi_autopm_put_host() <-- 나중에 실행됨
이 경우 하나의 EH 반복은 진입 시 자동 리sume를 건너뛰고 종료 시 런타임 PM 참조를 여전히 해제(drop)합니다. 이로 인해 일치하지 않는 런타임 PM put가 발생하며, 런타임 PM 사용 카운터의 오버플로우(underflow)를 유발할 수 있습니다.
이를 해결하기 위해 eh_noresume을 READ_ONCE() 및 WRITE_ONCE()로 접근 가능한 일반 bool형으로 변경합니다. EH 반복마다 한 번 스냅샷을 찍고, 해당 스냅샷을 런타임 PM get 및 put 결정 모두에 사용합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.