CVE-2026-99268 in Linux情報

要約

〜によって VulDB • 2026年11月03日

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

io_uring: ローカル task_work に対してリング poller をウェイクアップする

IORING_SETUP_DEFER_TASKRUN が設定されている場合、完了はローカル作業としてキューに格納され、サブミッターがイベントを待機するためにカーネルに入力した時点で初めて CQE(Completion Queue Entry)となります。ring fd に対する poll() または epoll を使用して、いつその処理を行うべきかを検出するアプリケーションの場合、io_uring_poll() はローカル作業が保留中である場合に EPOLLIN を報告します。

これは、呼び出しの瞬間に作業が存在する場合にのみ役立ちます。DEFER_TASKRUN が追加された際、io_req_local_work_add() では io_cqring_wake() が実行され、poll() で待機中のタスクも処理されていました。その後、ポーリングは独自のウェイトキュー(->poll_wq)を取得し、io_req_local_work_add() 内のウェイクアップは、サブミッターを直接ウェイクアップするものに置き換えられました。それ以来、->poll_wq は CQE がコミットされた場合にのみウェイクアップされますが、そのようなリングの場合、その処理は「通知されるのを待機している」まさにそのタスク自身によって行われます:

サブミッター 完了 poll(ring_fd) io_uring_poll() // まだ何もなし schedule() io_req_local_work_add() // ->cq_wait_nr: 誰も待機していない // ここでウェイトキューでスリープする

作業リストに最初のエントリが追加された際に、->poll_wq をウェイクアップします。eventfd の場合と同様、この処理は、作業がウェイクアップハンドラーからキューに格納される場合は直ちに行ってはなりません。なぜなら、一連のウェイクアップチェーンがロックを保持している待機キューに戻ってしまう可能性があるためです。そのような場合には RCU コールバックを使用し、リングへの参照を含めます。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Linux

予約する

2026年09月25日

モデレーション

承諾済み

エントリ

VDB-430254

EPSS

0.00000

アクティビティ

低い

ソース

Interested in the pricing of exploits?

See the underground prices here!