CVE-2026-98043

bpf: Don't infer non-NULL from a pointer with an unbounded offset

State
Published
Severity
Not scored
Published
Sep 25, 2026
Updated
Oct 21, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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

bpf: Don't infer non-NULL from a pointer with an unbounded offset

reg_not_null() decides that a register holds a non-NULL value by looking at its type alone. For pointer types that allow arithmetic the type only guarantees a non-NULL base, in case of an unbound offset the runtime offset value might still add up to NULL. Consider the followng program:

r6 = bpf_map_lookup_elem(map, &0); /* present */ if (r6 == 0) return 0; r7 = bpf_map_lookup_elem(map, &1); /* absent, NULL at runtime */ r8 = r7; r8 -= r6; /* pointer - pointer: unknown scalar, -r6 */ r8 <<= 1; r8 >>= 1; /* any non-negative offset is accepted by */ /* check_reg_sane_offset_ptr() */ r6 += r8; /* verifier: map value; runtime: zero */ if (r7 != r6) return 0; *(u8 *)(r7 + 0); /* r7 is inferred non-NULL, both are zero */

At runtime both registers are zero, the comparison is true and the load faults with NULL pointer dereference.

Require the offset to be within +-BPF_MAX_VAR_OFF in reg_not_null().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • cac616db39c207dc63465a4e05c6ce0e60b2cce4 to before 8b414dbe97fcefd116e5a620c3bd9993014aa4ceAffected
  • cac616db39c207dc63465a4e05c6ce0e60b2cce4 to before 019d845a08b8ccfe8eefaaf4bca6870f2b8c58aeAffected
  • cac616db39c207dc63465a4e05c6ce0e60b2cce4 to before 65bea674f43c09c0eda033a140dfac6a2842a19fAffected
  • cac616db39c207dc63465a4e05c6ce0e60b2cce4 to before cb6642048739bf4ee5aa09fe465511f1e87caa63Affected
  • cac616db39c207dc63465a4e05c6ce0e60b2cce4 to before 67b529f521a6676cdfc78b91b0217d7eaa84216bAffected
LinuxLinux
  • 5.8Affected
  • before 5.8Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.2.7 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.