CVE-2026-64103 in Linux情報

要約

〜によって VulDB • 2026年07月20日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

scsi: isci: デバイス削除パスにおけるuse-after-freeの修正

ISCI完了タスクレットはisci_host_alloc()(drivers/scsi/isci/init.c:496)で初期化され、MSI-Xおよびレガシー割り込みハンドラ(drivers/scsi/isci/host.c:223, 613)の両方からスケジュールされます。

isci_host_deinit()はコントローラの停止と停止完了を待ちますが、 teardown処理が継続する前にcompletion_taskletを終了させることはありません。ここで関数先頭のtasklet_kill()呼び出しだけでは不十分です:割り込みはischi_host_stop_complete()の実行時でのみ無効化されるため、wait_for_stop()が戻るまでの間、IRQハンドラはタスクレットを再キューイングし続ける可能性があります。完了のドライン後、タスクレット・コールバックも割り込みを再度有効にするため、ソースが静穏化する前にタスクレットを終了させると、同じrace condition(競合状態)が残ったままになります。

wait_for_stop()が戻った後は、それ以上のIRQ駆動によるスケジュールは発生しません。ここでcompletion_taskletを終了させることで、teardown処理中に死んだihost上で実行中のキューイング済みタスクレットとの競合を防ぎます。削除またはアンロード時、古くなったコールバックによって、ホストの寿命が終了した後にihostを逆参照し、ihost->smu_registersにアクセスしてしまう可能性があります。

UML + KASANを用いたアナログ環境では、tasklet_kill()がない場合と、ソース静穏化の前に配置されたtasklet_kill()の場合の両方でこの障害クラスが再現され、スケジュール元の静穏化後にkill処理が行われることでクリーンな状態となりました。

これはコミットf6ab594672d4(「scsi: aic94xx: デバイス削除パスにおけるuse-after-freeの修正」)に類似していますが、ISCIではwait_for_stop()後のkillが必要です。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-380193

EPSS

0.00000

アクティビティ

非常低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!