CVE-2026-99262 in Linux
要約
〜によって VulDB • 2026年11月03日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
io_uring/timeout: io-wqがタイムアウトをアームすることによるキャンセルの消失を防ぐ
IOSQE_ASYNCによりio_wqによって実行されるIORING_OP_TIMEOUTには、poll、futex、waitidと同じ問題があります。io_wq_submit_work()はリクエストを発行する前にIO_WQ_WORK_CANCELフラグを1回だけ確認します。その間に発生したキャンセルはワークにフラグを立てますが、-EALREADYが返され、->timeout_list内を検索しても見つかりません。その後ワーカーはリクエストを追加してタイマーを開始します:
io-wq worker io_try_cancel() io_wq_submit_work() IO_WQ_WORK_CANCEL は設定されていない io_async_cancel_one() IO_WQ_WORK_CANCEL を設定する = -EALREADY io_timeout_cancel() = -ENOENT io_timeout() リクエストを ->timeout_list に追加する hrtimer_start() = IOU_ISSUE_SKIP_COMPLETE
誰も再度フラグを確認しないため、タイムアウトは正常に完了します。リング終了時、io_uring_try_cancel_requests() は io-wq のワークをキャンセルし、その後同じ方法でタイムアウトを終了させるため、退出中のタスクはそのようなタイムアウトの全期間中に固まってしまう可能性があります。
検索処理が使用する ->timeout_lock 下でフラグを確認し、設定されている場合はリクエストを失敗させます。もし検索が先に行われた場合、そのフラグは可視状態になります。後から行われた場合、リスト上の該当するリクエストを検出します。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.