CVE-2026-99053 in Linux
要約
〜によって VulDB • 2026年10月23日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
tipc: リンク名で見つかったノードへの参照を保持する
`tipc_node_find_by_name()` は、RCU読取りロックを解放した後に参照を取得せずにノードを返します。その後、LINK_SET、LINK_GET、および LINK_RESET_STATS ハンドラはノードにロックをかけてアクセスしますが、これはダウンしているピアのタイマ駆動によるクリーンアップと競合状態になります。ジェネリックネットリンク直列化(serialization)では、ノードタイマが除外されません。
以下のインターリーブ処理により、解放済みノードを使用するハンドラが残る可能性があります:
CPU 0: RCU下でノードを検索し、ノード読取りロックを解放 CPU 1: tipc_node_timeout() がリンクをクリアし、ダウンしたノードをアンリンク CPU 1: リストおよびタイマ参照をドロップし、tipc_node_free() をキューイング CPU 0: RCU読取側クリティカルセクションを終了 CPU 1: グレース期間(grace period)を完了させノードを解放 CPU 0: 古くなったポインタを通じてノードロックを取得
LINK_SET はまた、キューされたパケットを `tipc_bearer_xmit()` に渡す際に、ノードロックを解放した後にノードのメディアアドレスも使用します。
v7.3-rc5 での KASAN の報告:
BUG: KASAN: slab-use-after-free in _raw_read_lock_bh Write of size 4 at addr ffff88807e06f008 by task poc/92 Call Trace: _raw_read_lock_bh kernel/locking/spinlock.c:287 tipc_nl_node_set_link net/tipc/node.c:2475 genl_family_rcv_msg_doit net/netlink/genetlink.c:1114 genl_rcv_msg net/netlink/genetlink.c:1209 netlink_rcv_skb net/netlink/af_netlink.c:2575
Allocated by task 0: tipc_node_create net/tipc/node.c:539 tipc_node_check_dest net/tipc/node.c:1196 tipc_disc_rcv net/tipc/discover.c:252
Freed by task 92: kfree mm/slub.c:6801 rcu_core kernel/rcu/tree.c:2919
Last potentially related work creation: __call_rcu_common.constprop.0 kernel/rcu/tree.c:3181 tipc_node_timeout net/tipc/node.c:814
RCU を離れる前に、`kref_get_unless_zero()` で選択されたノードへの参照を取得し、すでに解放されている場合は NULL を返します。最後のノードアクセス後(LINK_SET での送信を含む)、すべての呼び出し元終了時にその参照を解放します。既存のリンク検索順序とロック保持を行い、並行したリンク削除が依然として既存のエラーパスを取ることを保証します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.