{"id":29195,"date":"2026-09-25T20:32:07","date_gmt":"2026-09-25T12:32:07","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98040"},"modified":"2026-09-25T20:32:07","modified_gmt":"2026-09-25T12:32:07","slug":"cve-2026-98040","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98040","title":{"rendered":"CVE-2026-98040 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Mark the zero re"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Mark the zero register precise for a register-form NULL check<\/p>\n<p>check_cond_jmp_op() accepts &#8220;if rA  rB&#8221; as a NULL check for a<br \/>\nnullable pointer rA when rB is a scalar known to be zero,<br \/>\nlifts PTR_MAYBE_NULL from rA in the corresponding branch and does not<br \/>\nmark rB precise. Consider the following program:<\/p>\n<p>  r0 = bpf_get_prandom_u32();<br \/>\n  r6 = 1;                  \/* the r6 == 0 path is explored first *\/<br \/>\n  if (r0 == 0) goto 1f;<br \/>\n  r6 = 0;<br \/>\n1:<br \/>\n  r0 = bpf_map_lookup_elem(map, &amp;0);  \/* absent, NULL at runtime *\/<br \/>\n  if (r0 == r6) goto 2f;   \/* taken as a NULL check for r0       *\/<br \/>\n  *(u8 *)(r0 + 0);         \/* verifier: map value; runtime: zero *\/<br \/>\n2:<br \/>\n  return 0;<\/p>\n<p>The r6 == 0 path is explored first and the dereference is accepted.<br \/>\nThe r6 == 1 path is pruned at the checkpoint recorded for (1),<br \/>\nso the comparison is never verified with a non-zero r6. At runtime a<br \/>\nfailed lookup returns NULL, NULL != 1 takes the non-NULL edge and the<br \/>\nprogram dereferences a pointer that is zero.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Mark the zero register precise for a register-form NULL check<\/p>\n<p>check_cond_jmp_op() accepts &#8220;if rA  rB&#8221; as a NULL check for a<br \/>\nn<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29195","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29195"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}