CVE-2026-43026Linux内核netfilter子系统的ctnetlink模块存在一处信息泄露漏洞。在处理连接跟踪期望分配时,如果netlink消息中缺少CTA_EXPECT_NAT属性,代码未对NAT相关字段(saved_addr和saved_proto)进行初始化。由于底层slab缓存是非零化的,这导致新分配的对象保留了之前使用者的陈旧数据。当内核将这些期望信息转储回用户空间时,可能会错误地包含这些敏感的内核内存数据。本地攻击者可利用此漏洞读取内核内存内容,进而可能辅助绕过安全机制(如KASLR)或为进一步提权做准备。
该漏洞位于Linux内核的netfilter组件中,具体涉及`ctnetlink_alloc_expect`函数。该函数通过`nf_ct_expect_alloc`从内核slab缓存中分配`nf_conntrack_expect`结构体。出于性能考虑,内核slab分配器通常不会清零内存。当消息中未包含`CTA_EXPECT_NAT`属性时,代码跳过了对`saved_addr`、`saved_proto`及`dir`字段的初始化。随后,`ctnetlink_exp_dump_expect`函数在向用户空间转储数据时,会检查这些字段。由于字段未被清零,它们可能包含上一次分配该内存块时残留的数据(如IP地址、端口等内核内部信息)。攻击者可以通过精心构造netlink消息,先分配并释放带有NAT信息的期望对象以“污染”slab缓存,然后立即分配不带NAT信息的期望对象,从而触发内核将脏数据泄露回用户态。