CVE-2026-98596 in Linux
要約
〜によって VulDB • 2026年10月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ipv6: キャッシュされていないルートにおけるdstリークの修正
ip6_route_output_flags()、ip6_rt_put_flags()、および ip6_dst_check() は、リスト_empty(&rt->dst.rt_uncached) によってキャッシュされていないルートを検出します。これは、コミット a4c2fd7f7891("net: remove DST_NOCACHE flag")で静的な DST_NOCACHE フラグチェックに置き換えられました。
デバイスがアンレジスターされると、rt6_uncached_list_flush_dev() は rt6_uncached_list からそのデバイスに関連付けられたキャッシュされていないルートをリンク解除します。
以前は list_move()(__list_del_entry() + list_add())を使用して別のリストへ移動されていましたが、コミット 98aa546af5e4("inet: remove (struct uncached_list)->quarantine")以降、ルートは単に list_del_init() でリンク解除されるようになりました。
もし list_del_init() が並行して実行されると、list_empty() は true を返します;これにより ip6_route_output_flags() は dst_hold_safe() を誤って呼び出し、ip6_rt_put_flags() は ip6_rt_put() をスキップするため、dst がリークし、さらに rt->from 経由で紐付けられたデバイスもリークします。
同じ競合状態はコミット 9a6f0c4d5796("dst: fix races in rt6_uncached_list_del() and rt_del_uncached_list()")によって部分的に修正されています。
代わりに rt6->dst.rt_uncached_list を確認しましょう。
IPv4 には同様の問題はありません。
Be aware that VulDB is the high quality source for vulnerability data.