<?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://db.gcve.eu</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>Wed, 30 Sep 2026 13:25:11 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98149 — bpf: Fix percpu map update indexing with sparse CPU IDs</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98149</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: Fix percpu map update indexing with sparse CPU IDs&lt;/p&gt;
&lt;p&gt;Per-CPU array, hash, and cgroup storage map updates without BPF_F_CPU
or BPF_F_ALL_CPUS use a value buffer whose per-CPU slots are packed in
possible-CPU order. The buffer is sized as:&lt;/p&gt;
&lt;p&gt;round_up(value_size, 8) * num_possible_cpus()&lt;/p&gt;
&lt;p&gt;The update paths iterate over possible CPUs, but use the logical CPU ID
to calculate the source offset:&lt;/p&gt;
&lt;p&gt;value + size * cpu&lt;/p&gt;
&lt;p&gt;This only works when possible CPU IDs are contiguous starting at zero.&lt;/p&gt;
&lt;p&gt;For example, with a possible CPU mask of 0,2-3, the buffer contains
three slots corresponding to CPUs 0, 2, and 3. CPU2 is therefore
expected to use slot 1 and CPU3 slot 2. Instead, the current code uses
slots 2 and 3 respectively, causing incorrect per-CPU values and an
out-of-bounds read from the update buffer for CPU3.&lt;/p&gt;
&lt;p&gt;The corresponding lookup paths already use a dense offset while
iterating over possible CPUs. Do the same for the array, hash, and
cgroup storage update paths, advancing the source offset once for each
possible CPU. BPF_F_ALL_CPUS continues to use the same value for every
CPU.&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: Fix percpu map update indexing with sparse CPU IDs&lt;/p&gt;
&lt;p&gt;Per-CPU array, hash, and cgroup storage map updates without BPF_F_CPU
or BPF_F_ALL_CPUS use a value buffer whose per-CPU slots are packed in
possible-CPU order. The buffer is sized as:&lt;/p&gt;
&lt;p&gt;round_up(value_size, 8) * num_possible_cpus()&lt;/p&gt;
&lt;p&gt;The update paths iterate over possible CPUs, but use the logical CPU ID
to calculate the source offset:&lt;/p&gt;
&lt;p&gt;value + size * cpu&lt;/p&gt;
&lt;p&gt;This only works when possible CPU IDs are contiguous starting at zero.&lt;/p&gt;
&lt;p&gt;For example, with a possible CPU mask of 0,2-3, the buffer contains
three slots corresponding to CPUs 0, 2, and 3. CPU2 is therefore
expected to use slot 1 and CPU3 slot 2. Instead, the current code uses
slots 2 and 3 respectively, causing incorrect per-CPU values and an
out-of-bounds read from the update buffer for CPU3.&lt;/p&gt;
&lt;p&gt;The corresponding lookup paths already use a dense offset while
iterating over possible CPUs. Do the same for the array, hash, and
cgroup storage update paths, advancing the source offset once for each
possible CPU. BPF_F_ALL_CPUS continues to use the same value for every
CPU.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98149</guid>
    </item>
  </channel>
</rss>
