{"id":29198,"date":"2026-09-25T20:32:07","date_gmt":"2026-09-25T12:32:07","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98043"},"modified":"2026-09-25T20:32:07","modified_gmt":"2026-09-25T12:32:07","slug":"cve-2026-98043","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98043","title":{"rendered":"CVE-2026-98043 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Don&#8217;t infer non-"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Don&#8217;t infer non-NULL from a pointer with an unbounded offset<\/p>\n<p>reg_not_null() decides that a register holds a non-NULL value by<br \/>\nlooking at its type alone. For pointer types that allow arithmetic the<br \/>\ntype only guarantees a non-NULL base, in case of an unbound offset<br \/>\nthe runtime offset value might still add up to NULL.<br \/>\nConsider the followng program:<\/p>\n<p>  r6 = bpf_map_lookup_elem(map, &amp;0);  \/* present *\/<br \/>\n  if (r6 == 0) return 0;<br \/>\n  r7 = bpf_map_lookup_elem(map, &amp;1);  \/* absent, NULL at runtime *\/<br \/>\n  r8 = r7;<br \/>\n  r8 -= r6;     \/* pointer &#8211; pointer: unknown scalar, -r6 *\/<br \/>\n  r8 &lt;&gt;= 1;     \/* any non-negative offset is accepted by *\/<br \/>\n                \/* check_reg_sane_offset_ptr() *\/<br \/>\n  r6 += r8;     \/* verifier: map value;    runtime: zero  *\/<br \/>\n  if (r7 != r6) return 0;<br \/>\n  *(u8 *)(r7 + 0);  \/* r7 is inferred non-NULL, both are zero *\/<\/p>\n<p>At runtime both registers are zero, the comparison is true and the<br \/>\nload faults with NULL pointer dereference.<\/p>\n<p>Require the offset to be within +-BPF_MAX_VAR_OFF in reg_not_null().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>bpf: Don&#8217;t infer non-NULL from a pointer with an unbounded offset<\/p>\n<p>reg_not_null() decides that a register holds a non-NULL value by<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29198","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29198","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=29198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}