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().
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Kernel crash via null pointer dereference in BPF verifier
Action: Immediate Patch
AI Analysis

Impact

A helper in the Linux kernel’s BPF verifier incorrectly assumes that a pointer is non‑NULL based solely on its type. When user‑supplied BPF code performs pointer arithmetic with an unbounded offset, the resulting runtime pointer can still become NULL. The verifier then treats that pointer as a valid non‑NULL value and permits a subsequent dereference, triggering a kernel null pointer dereference that crashes the host and causes a denial‑of‑service. The flaw is a classic null‑pointer dereference condition, identified as CWE‑476.

Affected Systems

All Linux kernel distributions that include the unpatched BPF verifier logic are affected. Any kernel that has not applied the commit enforcing bounded offsets for pointer arithmetic in o‑BPF programs remains vulnerable.

Risk and Exploitability

Exploitation requires a user‑space process to load a custom BPF program containing pointer arithmetic with an unbounded offset. The CVSS score of 5.5 indicates moderate severity, while the EPSS score of less than 1% suggests a low likelihood of exploitation in the wild. The vulnerability is not listed in CISA’s KEV catalog, and no public exploits are known. Loading a malicious BPF program can lead to a kernel crash, providing denial‑of‑service but not privilege escalation.

Generated by OpenCVE AI on September 30, 2026 at 14:26 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes the committed patch for the BPF verifier.
  • If an update is not immediately possible, prevent or restrict the loading of untrusted BPF programs by limiting eBPF access to privileged users.
  • Apply stricter permissions and audit BPF program submissions to reduce the chance of malicious pointer arithmetic.

Generated by OpenCVE AI on September 30, 2026 at 14:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 15 Oct 2026 13:30:00 +0000


Tue, 29 Sep 2026 21:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-690

Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-690

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
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().
Title bpf: Don't infer non-NULL from a pointer with an unbounded offset
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-15T10:12:06.411Z

Reserved: 2026-09-25T10:19:56.071Z

Link: CVE-2026-98043

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:33.090

Modified: 2026-10-15T11:18:10.357

Link: CVE-2026-98043

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-98043 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T14:30:18Z

Weaknesses