CVE-2026-43009Linux内核中的BPF验证器存在漏洞。在处理带有BPF_ATOMIC和BPF_FETCH的BPF_STX指令时,回溯逻辑未正确处理源寄存器同时作为目的寄存器的情况,导致精度未能传播到栈位置。这可能使验证器错误地修剪路径,将不等效的状态视为相同,从而可能导致恶意BPF程序通过验证,引发权限提升或系统崩溃风险。
该漏洞源于Linux内核BPF验证器中的精度跟踪机制缺陷。当验证器遇到 `BPF_STX` 指令且带有 `BPF_ATOMIC` 和 `BPF_FETCH` 标志时,源寄存器同时充当目的寄存器(接收内存中的旧值)。然而,当前的 `backtrack_insn` 逻辑并未考虑这一特性,错误地将其视为常规存储指令。这导致在回溯过程中,精度未能正确传播到对应的栈位置。随后,验证器的路径修剪机制会错误地认为两个在栈状态上存在差异的执行路径是等价的,从而错误地对路径进行了修剪。这意味着本应被拒绝的潜在不安全BPF程序可能通过验证,进而允许攻击者利用此漏洞绕过内核安全限制,执行任意代码或导致内核崩溃。