CVE-2026-31674Linux内核netfilter子系统的IPv6路由头(rt)匹配模块中存在一个缺陷。该漏洞允许攻击者通过提交特制的防火墙规则,使`addrnr`参数超出预设边界。由于`rt_mt6_check()`函数在规则安装阶段未正确拦截此类异常值,导致后续的匹配函数`rt_mt6()`在处理时发生越界内存访问。本地低权限攻击者利用此漏洞可导致系统崩溃或泄露敏感内核信息。
该漏洞的核心在于校验逻辑的缺失。在Linux内核的`net/ipv6/netfilter/ip6t_rt.c`文件中,`rt_mt6_check`函数负责验证用户通过`iptables`等工具下发的IPv6路由头匹配规则。正常情况下,`addrnr`代表地址数量,必须小于`IP6T_RT_HOPS`(通常为3)。然而,漏洞代码未能拒绝过大的`addrnr`值。当包含恶意`addrnr`的规则被加载并生效后,一旦有网络包匹配该规则,`rt_mt6`函数会使用该越界值访问`rtinfo->addrs`数组。这导致读取或写入非法内存地址,根据具体内存布局,可能引发内核段错误(DoS)或通过越界读取获取内核内存数据。