<?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>Tue, 29 Sep 2026 01:50:46 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98134 — bpf: check_cond_jmp_op(): properly infer if register is null</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-98134</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: check_cond_jmp_op(): properly infer if register is null&lt;/p&gt;
&lt;p&gt;Nicholas Carlini reported a bug when verifier can incorrectly infer
that a pointer is non-null. The bug occurs when two pointers are
compared and one of them has a type w/o PTR_MAYBE_NULL flag,
but which allows a value to be NULL at runtime.
Here is an example:&lt;/p&gt;
&lt;p&gt;// `a` is PTR_TO_MEM | MEM_RDONLY | PTR_UNTRUSTED
  // `a` is 0 at runtime.
  // `b` is PTR_TO_MAP_VALUE | PTR_MAYBE_NULL
  void *a = bpf_rdonly_cast(0, 0);
  int  *b = bpf_map_lookup_elem(...);&lt;/p&gt;
&lt;p&gt;if (a == b)
    *b = 42;  // verifier does not catch null pointer dereference&lt;/p&gt;
&lt;p&gt;This happens because of a special case in check_cond_jmp_op(),
which attempts to strip PTR_MAYBE_NULL flags from pointer types,
when processing comparisons like `rA == rB`, if either rA or rB can&amp;#39;t
be null.&lt;/p&gt;
&lt;p&gt;The non-null property is derived based on the absence of
PTR_MAYBE_NULL flag on rA&amp;#39;s or rB&amp;#39;s type. But that is not sufficient
for types like PTR_TO_MEM, as in the example.&lt;/p&gt;
&lt;p&gt;This patch replaces type_may_be_null() call with reg_not_null(),
which contains an allowlist of types for which absence of
PTR_MAYBE_NULL actually means that the value can&amp;#39;t be NULL at runtime.&lt;/p&gt;
&lt;p&gt;At the moment, the list in the reg_not_null() omits two types for
which PTR_MAYBE_NULL is applicable: PTR_TO_XDP_SOCK and PTR_TO_BUF.
In order to remain backward compatible, and assuming that only
comparison between pointers of the same type makes se…&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: check_cond_jmp_op(): properly infer if register is null&lt;/p&gt;
&lt;p&gt;Nicholas Carlini reported a bug when verifier can incorrectly infer
that a pointer is non-null. The bug occurs when two pointers are
compared and one of them has a type w/o PTR_MAYBE_NULL flag,
but which allows a value to be NULL at runtime.
Here is an example:&lt;/p&gt;
&lt;p&gt;// `a` is PTR_TO_MEM | MEM_RDONLY | PTR_UNTRUSTED
  // `a` is 0 at runtime.
  // `b` is PTR_TO_MAP_VALUE | PTR_MAYBE_NULL
  void *a = bpf_rdonly_cast(0, 0);
  int  *b = bpf_map_lookup_elem(...);&lt;/p&gt;
&lt;p&gt;if (a == b)
    *b = 42;  // verifier does not catch null pointer dereference&lt;/p&gt;
&lt;p&gt;This happens because of a special case in check_cond_jmp_op(),
which attempts to strip PTR_MAYBE_NULL flags from pointer types,
when processing comparisons like `rA == rB`, if either rA or rB can&amp;#39;t
be null.&lt;/p&gt;
&lt;p&gt;The non-null property is derived based on the absence of
PTR_MAYBE_NULL flag on rA&amp;#39;s or rB&amp;#39;s type. But that is not sufficient
for types like PTR_TO_MEM, as in the example.&lt;/p&gt;
&lt;p&gt;This patch replaces type_may_be_null() call with reg_not_null(),
which contains an allowlist of types for which absence of
PTR_MAYBE_NULL actually means that the value can&amp;#39;t be NULL at runtime.&lt;/p&gt;
&lt;p&gt;At the moment, the list in the reg_not_null() omits two types for
which PTR_MAYBE_NULL is applicable: PTR_TO_XDP_SOCK and PTR_TO_BUF.
In order to remain backward compatible, and assuming that only
comparison between pointers of the same type makes se…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-98134</guid>
    </item>
  </channel>
</rss>
