CVE-2026-80866 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
tipc: tipc_exit_net() におけるビジーウェイトループの回避
Blamed commit は、保留中の UDP ベアラークリーンアップ処理が完了するのを待つために、tipc_exit_net() にビジーウェイトループを導入しました。
while (atomic_read(&tn->wq_count)) cond_resched();
このループは、cond_resched() が NOP(何もしない)の場合、長時間ビジーウェイト状態になる可能性があります。これは通常、netns の終了処理が優先度の高いタスクによって実行される場合や、プリエンプションなしで構成されたカーネル(CONFIG_PREEMPT_NONE)において発生します。このようなケースでは CPU サイクルが無駄になり、ソフトロックアップを引き起こす原因となります。
これを修正するため、ビジーウェイトループを wait_var_event() に置き換え、ワークキューのカウントがゼロになるまでスレッドが適切に待機(sleep)できるようにしました。
これに伴い、cleanup_bearer() を更新し、atomic_dec_and_test() と wake_up_var() を使用して、カウントがゼロになった際にウェイト中のプロセスを起床させるようにしました。
これによりグローバルな wait queue ハッシュテーブルを使用するため、struct tipc_net に wait_queue_head_t が追加されて肥大化する必要がありません。また、atomic_dec_and_test() は必要なメモリバリアを提供し、ウakeup(通知)の見逃しを防ぎます。
If you want to get best quality of vulnerability data, you may have to visit VulDB.