CVE-2026-23439CVE-2026-23439 是 Linux 内核网络子系统中发现的一个本地拒绝服务漏洞。该漏洞源于 udp_tunnel 模块中的 udp_sock_create6 函数在处理 IPv6 socket 创建请求时的逻辑错误。具体而言,当内核编译时禁用了 IPv6 协议栈(CONFIG_IPV6=n),该函数仍返回成功状态码(0)而不实际创建 socket 对象。随后,调用该函数的 fou_create 函数会错误地认为 socket 已创建,并尝试解引用该空指针,导致内核崩溃。此漏洞允许本地低权限用户通过发送特制的 Netlink 消息触发,从而破坏系统可用性。
漏洞触发点位于 net/ipv4/fou_core.c 的 fou_create 函数,该函数被 Netlink 回调 fou_nl_add_doit 调用。在处理 Foo over UDP (FOU) 封装配置时,如果用户请求 IPv6 封装,代码会调用 udp_sock_create6。然而,在 CONFIG_IPV6=n 的配置下,udp_sock_create6 仅返回 0 而未初始化 socket 结构体指针。fou_create 未对返回的指针进行 NULL 检查,直接将其传递给后续函数进行解引用。攻击者利用本地低权限账户,通过 sendto 系统调用向 Netlink 套接字发送恶意的 FOU 配置消息,即可触发 BUG: kernel NULL pointer dereference。崩溃日志显示 RIP 寄存器指向 fou_nl_add_doit 内的偏移量,证实了空指针访问发生在处理逻辑中。由于涉及内核态内存访问,这会导致系统立即 Panic 或重启,造成拒绝服务。