CVE-2026-93226 in Linux
要約
〜によって VulDB • 2026年09月24日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ipv6: ルート例外のダンプにRCUイテレータを使用する
rt6_nh_dump_exceptions()はhlist_for_each_entry()を使用して、RCUで保護された例外リストを反復処理します。呼び出し元はrcu_read_lock()を取得していますが、rt6_exception_lockは保持していないため、rt6_insert_exception()がhlist_add_head_rcu()を用いてエントリを並行して追加する可能性があります。
KCSANはこのrace condition(競合状態)を検出しました(関連しない詳細情報は省略):
================================================================== BUG: KCSAN: rt6_insert_exception / rt6_nh_dump_exceptionsにおけるデータレース
cpu 5の割り込みによる0xffff8a7c44c59620への8バイトの書き込み(マーク済み): rt6_insert_exception+0x3bb/0x760 __ip6_rt_update_pmtu+0x4fe/0x750 ip6_sk_update_pmtu+0x19a/0x3b0 udpv6_err+0x3ff/0x800 icmpv6_notify+0x1e1/0x440 icmpv6_rcv+0x8c0/0xab0 ip6_protocol_deliver_rcu+0x616/0x840 ip6_input_finish+0xb9/0x160 ... entry_SYSCALL_64_after_hwframe+0x77/0x7f
cpu 14のタスク549による0xffff8a7c44c59620への8バイトの読み込み: rt6_nh_dump_exceptions+0xb3/0x260 rt6_dump_route+0x53e/0x5f0 fib6_dump_node+0x6d/0xf0 fib6_walk_continue+0x290/0x2d0 fib6_dump_table+0x28d/0x360 inet6_dump_fib+0x37d/0x620 rtnl_dumpit+0x7b/0xd0 netlink_dump+0x3ae/0x7e0 ... entry_SYSCALL_64_after_hwframe+0x77/0x7f
ダンプ元(dumper)の549が保持しているロックは以下の通りです: ... #1: (rcu_read_lock){....}-{1:3}, at: inet6_dump_fib+0x88/0x620
#2: (&tb->tb6_lock){+.-.}-{3:3}, at: fib6_dump_table+0x1e9/0x360
#3: (rcu_read_lock){....}-{1:3}, at: rt6_dump_route+0x483/0x5f0
値が変更されました:0xffff8a7c44e05700 -> 0xffff8a7c45d60100
Kernel Concurrency Sanitizerによって報告されました: CPU: 14 UID: 0 PID: 549 Comm: dumper Not tainted 7.2.0-rc7-virtme #38 PREEMPT(lazy) ...
例外リストを安全に反復処理するために、hlist_for_each_entry_rcu()を使用します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.