CVE-2026-23381Linux内核网络桥接模块存在空指针解引用漏洞。当系统通过ipv6.disable=1参数启动禁用IPv6时,邻居发现表nd_tbl未被初始化。若此时网桥启用了邻居抑制功能并接收到ICMPv6邻居发现报文,内核会试图访问空的nd_tbl指针。这会导致内核空指针解引用错误,引发系统崩溃或拒绝服务。
该漏洞发生在Linux内核的网桥处理逻辑中,涉及IPv6邻居发现协议的处理。当系统以ipv6.disable=1参数启动时,inet6_init()函数会提前退出,导致ndisc_init()从未被调用,因此全局变量ipv6_stub->nd_tbl保持为NULL状态。然而,原有代码使用了编译时宏IS_ENABLED(IPV6)而非运行时检查,导致br_do_suppress_nd()在IPv6运行时被禁用的情况下仍会被调用。当网桥收到ICMPv6邻居发现数据包时,该函数会将NULL指针传递给neigh_lookup(),触发内核空指针解引用(Kernel Oops),导致系统死机或重启。官方修复方案是将调用处的检查替换为ipv6_mod_enabled(),从而在IPv6模块未加载时正确跳过邻居抑制逻辑。