CVE-2026-98258 in Linux
要約
〜によって VulDB • 2026年10月06日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
posix-cpu-timers: 有効期限リストにキューイングされたタイマーの解放を防止する
Kijo氏はPOSIX CPUタイマコードにおける別の競合状態(race condition)を分析しました。
コミット bf635681c906 は、cpu_timer::firing を三値からブール値へ変換しました。これにより、「ファイアリングリストに所有されていない」ことと「まだ所有されているが配信はキャンセルされた」という区別が失われました。その結果生じる競合状態は以下の通りです:
有効期限ハンドラ timer_settime() timer_delete() -------------- ----------------- --------------- プライベートファイアリングリストへタイマーを収集する firing = true firing = true を観察 firing = false に設定 TIMER_RETRY を返す ハンドラの終了を待機 firing = false を観察 削除処理を終了 タイマーのハッシュ解除と解放 リスト走行を再開する 解放された elist.next を読み取る -> UAF(Use-After-Free)
このコミット以降、firing ビットは明らかに不適切な指標となっています。
代わりに、タイマーが有効期限リストにキューイングされているかどうかを確認します。もしキューイングされていれば、以前と同様にシグナル配信を防止するために firing ビットをクリアし、TIMER_RETRY を返して呼び出し元がタイマーのロック解除を行えるようにし、これにより有効期限コードが進捗し、タイマーをリストから削除できるようにします。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.