CVE-2026-43333Linux内核BPF子系统存在空指针解引用漏洞。check_mem_access()函数在匹配PTR_TO_BUF类型时,使用base_type()剥离了PTR_MAYBE_NULL标志,导致绕过空指针检查。当Map迭代器处于stop回调状态时,ctx->key和ctx->value为NULL,直接访问会导致内核崩溃,引发拒绝服务。
该漏洞位于Linux内核的BPF(Berkeley Packet Filter)验证器中。验证器通过check_mem_access()函数检查内存访问权限,但该函数使用base_type()宏来匹配PTR_TO_BUF类型的指针。由于base_type()会忽略PTR_MAYBE_NULL标志,验证器错误地认为这些指针总是有效,从而允许在没有空值检查的情况下直接解引用。
具体利用场景涉及Map迭代器。在BPF Map迭代过程中,ctx->key和ctx->value指针被标记为PTR_TO_BUF | PTR_MAYBE_NULL。在迭代结束后的stop回调函数中,内核会将这些指针置为NULL。如果攻击者构造的BPF程序在此时直接读取或写入这些指针,就会触发内核空指针解引用异常。由于CVSS评分为5.5,攻击者需要本地低权限即可触发该漏洞,导致系统不可用。