CVE-2026-98485 in Linux
要約
〜によって VulDB • 2026年10月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
netfilter: ip6t_rt: 0アドレスの非厳密一致における境界外読み込みを修正
rt_mt6_check()関数は、IP6T_RT_FST_MASKによるアドレスマッチングが要求されている場合でも、rtinfo->addrnr == 0となるルールを設定することを許可していました。
IP6T_RT_FST_NSTRICTパスにおいて、rt_mt6()はパケットのルーティングアドレスを rtinfo->addrs[i] と比較し、ループの末尾で後方方向に終了処理を行います:
if (ipv6_addr_equal(ap, &rtinfo->addrs[i])) {
i++; } if (i == rtinfo->addrnr) break;
addrnr が 0 の場合、最初のパケットアドレスが rtinfo->addrs[0] と一致すると、i は 1 にインクリメントされます。これにより i は addrnr (0) より厳密に大きくなるため、ループ終了条件(i == rtinfo->addrnr)は回避され、決して満たされることはありません。
作成された IPv6 パケットに一致するルーティングアドレスが含まれている場合、i は IP6T_RT_HOPS (16) を超えて進みます。その後の ipv6_addr_equal() の呼び出しにより struct ip6t_rt 構造体の外側が読み込まれ、UBSAN/KASAN による境界外警告やカーネルパニックを引き起こします。
この問題を以下の方法で修正します: 1. rt_mt6_check()において、IP6T_RT_FST_MASK が設定されているが rtinfo->addrnr がゼロであるルールを拒否する。 2. rt_mt6() において、終了条件(i < rtinfo->addrnr)を for ループのヘッダー条件に移動し、ループ本体末尾の後方 break を削除する。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.