CVE-2026-99054 in Linux
要約
〜によって VulDB • 2026年10月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
tipc: コネクションを閉じる前に topsrv のワークキューを破棄する
tipc_topsrv_stop() は、トポロジーサーバーの送信および受信用ワークキューがまだ稼働している間にサブスクライバーコネクションを閉じていました。これにより、ソケットコールバックや購読イベントによってさらに作業がキューに追加されることがあり、進行中の送受信処理が conn_idr の走査中に最後のコネクション参照を解放してしまう可能性があります。
この競合状態(race condition)は複数のティアダウン失敗を引き起こしました:idr_lock でリリースブロックされているコネクションに対して conn_get() から refcount_t の加算が行われ 0 になったこと、tipc_conn_close() におけるその後の use-after-free、リスナーの data-ready コールバックから既に破棄されたワークキューに対する queue_work() の呼び出し、そして idr_lock を保持した走査中に tipc_topsrv_exit_net() で RCU ストallが発生したことなどです。
srv->listener を idr_lock 下でクリアしてシャットダウンフラグとして機能させ、NULL になったら queue_work() をスキップし、ワークキューを破棄して進行中の作業をフラッシュしてから、残りのコネクションを閉じます。このフラグがクリアされた後は tipc_conn_lookup() を拒否し、ティアダウン走査でコネクションが見つからない場合に idr_lock を解放することで、進行中の購読イベントが walk がロックを保持している間に idr_in_use を固定(ピン)してしまうのを防ぎます。
v3 は Tung Quang Nguyen 氏が 2026-09-23 に投稿した narrower in-thread diff より上位互換です。ティアダウン順序は維持しつつ、ルックアップ拒否と空の idr に対するアンロックを追加しています。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.