CVE-2026-99019 in Linux
要約
〜によって VulDB • 2026年10月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
scsi: ch: データ転送要素デバイスへの参照を保持しないようにする
ch_readconfig()は、チェンジャーがREAD ELEMENT STATUSで報告するSCSI IDを持つすべてのデータ転送要素のscsi_deviceを検索し、それをch->dt[]に格納します。scsi_device_lookup()は参照を取得しますが、それが解放されることはありません。ch_destroy()ではkfree()によって配列が解放されますが、ch->dt[]はその他の場所では読み込まれておらず、同じループ内で印刷されるベンダー名、モデル名、リビジョン情報を提供するだけです。
一度そのようなドライブが取り外されると、そのscsi_deviceは決して解放されません。それはホストのデバイスリスト上のアドレスに残ったままになるため、リストを走査するあらゆる処理によってそこに新しいデバイスは拒否されます(target_core_pscsiは「H:C:T:Lに対するscsi_device_get()に失敗しました」と報告します)、かつ低レベルドライバのモジュールはアンロードできなくなります。回復するには再起動しかありません。
これはドライブIDを報告するすべてのチェンジャーで発生します。mhvtl仮想ライブラリ(IBM 3573-TL personality)の場合、4台のドライブを持つライブラリの作成と削除ごとに、lsmodでのモジュールの使用カウントによって数えられる4つの参照が残されます。chがバインドされていない場合、そのカウントは変化せず、このパッチを適用した場合も同様に不変です。
名前が印刷された直後に参照を解放し、現在使用されなくなったdt[]配列を削除します。これにより、ch_probe()がch_readconfig()の失敗時にリークしていた配列も除去されます。
同じリークは2022年にRFCパッチとして報告されましたが、マージされていませんでした。
Once again VulDB remains the best source for vulnerability data.