CVE-2026-43453Linux内核netfilter子系统的nft_set_pipapo模块中存在一个堆越界读取漏洞。在pipapo_drop()函数处理规则映射时,由于循环边界检查不当,在最后一次迭代中访问了rulemap数组末尾之后的内存地址。尽管被调用的函数可能不会立即使用该越界值,但参数的求值过程触发了KASAN检测到的越界读取。本地低权限攻击者可利用此漏洞导致内核崩溃或泄露敏感内存信息。
该漏洞源于Linux内核netfilter的Pipapo集合实现。在`pipapo_drop`函数中,代码遍历字段以处理规则删除。循环将`rulemap[i+1].n`作为参数传递给`pipapo_unmap`。当`i`等于`m->field_count - 1`(即最大字段数,通常为16)时,`i+1`导致访问`rulemap`数组之外的4字节内存(偏移量164,而数组结束于160)。虽然`pipapo_unmap`在`is_last`为真时会提前返回,但在C语言调用约定中,函数参数是在进入函数体之前求值的。因此,即使函数内部未使用该值,这种越界读取行为确实发生了。KASAN(内核地址消毒剂)报告了此堆越界读取。由于这是堆栈内存读取,攻击者可能利用此行为读取堆栈上的其他数据,或者触发内核错误导致拒绝服务。