CVE-2026-98040
Last modified
CVE-2026-98040 is a vulnerability of currently unknown severity. In the Linux kernel, the following vulnerability has been resolved: bpf: Mark the zero register precise for a register-form NULL check check_cond_jmp_op() accepts "if rA <op> rB" as a NULL check for a nullable pointer rA when rB is a scalar known to be zero, lifts PTR_MAYBE_NULL from rA in the corresponding branch and does not mark rB precise. Consider the following program: r0 = bpf_get_prandom_u32(); r6 = 1; /* the r6 == 0 path is explored first */ if (r0 == 0) goto 1f; r6 = 0; 1: r0 = bpf_map_lookup_elem(map, &0); /* absent, NULL at runtime */ if (r0 == r6) goto 2f; /* taken as a NULL check for r0 */ *(u8 *)(r0 + 0); /* verifier: map value; runtime: zero */ 2: return 0; The r6 == 0 path is explored first and the dereference is accepted. The r6 == 1 path is pruned at the checkpoint recorded for (1), so the comparison is never verified with a non-zero r6.
Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Mark the zero register precise for a register-form NULL check check_cond_jmp_op() accepts "if rA <op> rB" as a NULL check for a nullable pointer rA when rB is a scalar known to be zero, lifts PTR_MAYBE_NULL from rA in the corresponding branch and does not mark rB precise. Consider the following program: r0 = bpf_get_prandom_u32(); r6 = 1; /* the r6 == 0 path is explored first */ if (r0 == 0) goto 1f; r6 = 0; 1: r0 = bpf_map_lookup_elem(map, &0); /* absent, NULL at runtime */ if (r0 == r6) goto 2f; /* taken as a NULL check for r0 */ *(u8 *)(r0 + 0); /* verifier: map value; runtime: zero */ 2: return 0; The r6 == 0 path is explored first and the dereference is accepted. The r6 == 1 path is pruned at the checkpoint recorded for (1), so the comparison is never verified with a non-zero r6. At runtime a failed lookup returns NULL, NULL != 1 takes the non-NULL edge and the program dereferences a pointer that is zero.
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 2f4cb53eed448c1aeb6f4b40cf9c810716d8218c, < ddca9a3b8833168dda3e62676648a636fb3f221c; >= 2f4cb53eed448c1aeb6f4b40cf9c810716d8218c, < 6aed0134d3cda6382385a734ae0158eb7df6b142 |
| Linux | Linux | 7.1 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-98040?
How severe is CVE-2026-98040?
How do I fix CVE-2026-98040?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-98035In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98036In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98037In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98038In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98039In the Linux kernel, the following vulnerability has been re…
- CVE-2026-9804A flaw was found in KubeVirt's virt-exportserver component. …7.7
- CVE-2026-98041In the Linux kernel, the following vulnerability has been re…7
- CVE-2026-98042In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98043In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98044In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98045In the Linux kernel, the following vulnerability has been re…
- CVE-2026-98046In the Linux kernel, the following vulnerability has been re…
Are you affected by CVE-2026-98040?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
