<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 07:53:23 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98043 — bpf: Don't infer non-NULL from a pointer with an unbounded offset</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-98043</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Don&amp;#39;t infer non-NULL from a pointer with an unbounded offset&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;r6 = bpf_map_lookup_elem(map, &amp;amp;0);  /* present */
  if (r6 == 0) return 0;
  r7 = bpf_map_lookup_elem(map, &amp;amp;1);  /* absent, NULL at runtime */
  r8 = r7;
  r8 -= r6;     /* pointer - pointer: unknown scalar, -r6 */
  r8 &amp;lt;&amp;lt;= 1;
  r8 &amp;gt;&amp;gt;= 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 */&lt;/p&gt;
&lt;p&gt;At runtime both registers are zero, the comparison is true and the
load faults with NULL pointer dereference.&lt;/p&gt;
&lt;p&gt;Require the offset to be within +-BPF_MAX_VAR_OFF in reg_not_null().&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;bpf: Don&amp;#39;t infer non-NULL from a pointer with an unbounded offset&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;r6 = bpf_map_lookup_elem(map, &amp;amp;0);  /* present */
  if (r6 == 0) return 0;
  r7 = bpf_map_lookup_elem(map, &amp;amp;1);  /* absent, NULL at runtime */
  r8 = r7;
  r8 -= r6;     /* pointer - pointer: unknown scalar, -r6 */
  r8 &amp;lt;&amp;lt;= 1;
  r8 &amp;gt;&amp;gt;= 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 */&lt;/p&gt;
&lt;p&gt;At runtime both registers are zero, the comparison is true and the
load faults with NULL pointer dereference.&lt;/p&gt;
&lt;p&gt;Require the offset to be within +-BPF_MAX_VAR_OFF in reg_not_null().&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-98043</guid>
    </item>
  </channel>
</rss>
