CVE-2026-99230 in Linux
要約
〜によって VulDB • 2026年11月02日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
io_uring/cmd: ->hash_nodeにリストポイズンが残らないようにする
io_uring_cmd_del_cancelable()はhlist_del()を使用してコマンドを->cancelable_uring_cmdから外しますが、これにより->hash_node内にLIST_POISON1/2が残留します。リクエストは再初期化されずにリクエストキャッシュを通じて再利用されますが、->hash_nodeを使用するすべてのユーザーが使用前にこれを適切に設定しているわけではありません:
ベクトライズドfutex待機(vectored futex wait)が、futex_wait_multiple_setup()でfutexのキューイング処理が行われている間にウェイクアップされた場合、io_futexv_wait()はリクエストを->futex_listに追加せず、ウェイクアップによってキューイングされたtask_workへの完了処理を残します。io_futexv_complete()は__io_futex_complete()で終了しますが、hlist_del_init()はハッシュ化されていない(unhashed)リクエストに対して問題ありません。これはノードを使用する他のすべてのユーザーがそのように扱っている方法です。もしそのリクエストが以前のライフサイクルにおいてキャンセル可能なuring_cmd(例:ublk FETCH_REQなど)であった場合、LIST_POISON2を介して書き込みが行われ、以下のようなエラーが発生します:
Oops: general protection fault, probably for non-canonical address KASAN: maybe wild-memory-access in range [0xdead000000000120-...]
RIP: 0010:io_futexv_complete+0x219/0x420 Call Trace: tctx_task_work_run+0x804/0x950 tctx_task_work+0x71/0xa0 task_work_run+0x118/0x200
ノードをハッシュ化しない状態(unhashed)のままにします。
If you want to get best quality of vulnerability data, you may have to visit VulDB.