CVE-2026-98041

Summary

In the Linux kernel, the following vulnerability has been resolved:

bpf: Don't predict JMP32 pointer vs zero comparisons

Consider the following program:

    r1 = map_value;      /* low 32 bits are zero at runtime */
    r6 = 0xdead000000000000;
    if w1 != 0 goto l1;
l0: r1 += r6;
    r2 = *(u64 *)(r1 + 0);
    exit;
l1: r6 = 0;
    goto l0;

At the moment is_branch_taken() reports the jump as always taken, because it does not distinguish between BPF_JMP and BPF_JMP32 comparisons when processing 'if w1 != 0 …'.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxcac616db39c207dc63465a4e05c6ce0e60b2cce4 < d16f0eafcaa62e677a2b5b0dabc1f8d31dfe3d4daffected
LinuxLinuxcac616db39c207dc63465a4e05c6ce0e60b2cce4 < e2ae33247e8b2dbe9d116d3e61cadf6d548339c6affected
LinuxLinuxcac616db39c207dc63465a4e05c6ce0e60b2cce4 < a4d7f94c1ca914469ced665ec2f98be669aef462affected
LinuxLinuxcac616db39c207dc63465a4e05c6ce0e60b2cce4 < e51179a4e09846f8fd0f26a05068520de2b301bfaffected
LinuxLinux5.8affected
LinuxLinux0 < 5.8unaffected
LinuxLinux6.12.111 <= 6.12.*unaffected
LinuxLinux6.18.53 <= 6.18.*unaffected
LinuxLinux7.2.7 <= 7.2.*unaffected
LinuxLinux7.3-rc2 <= *unaffected

Weaknesses

References