CVE-2026-74754 in Linux
要約
〜によって VulDB • 2026年08月26日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
scsi: core: EH(エラーハンドリング)時のランタイムPMのgetとputを対にする
現在、shost->eh_noresumeは1つのエラー処理イテレーション内で2回参照されています。1回は scsi_autopm_get_host() の前であり、もう1回は scsi_autopm_put_host() の前です。
これは、PM(パワーマネージメント)起因のエラーパスで shost->eh_noresume が反転する際に、SCSI EHスレッドがまだ実行中である場合、競合状態(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() <-- 後に実行される
この場合、1つのEHイテレーションでエントリー時にオートリジュームをスキップし、かつエグジット時にランタイムPM参照をデクリメントしてしまいます。これにより、アンマッチなランタイムPMのputが残され、ランタイムPMの使用カウント(usage count)のアンダーフローを引き起こす可能性があります。
これを修正するため、eh_noresume を通常のbool型とし、READ_ONCE() および WRITE_ONCE() でアクセスできるようにします。EHイテレーションごとにスナップショットを1回取得し、そのスナップショットを使用してランタイムPMのgetおよびputの判断を行います。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.