<?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>Sat, 03 Oct 2026 05:57:59 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-37807 — bpf: Fix kmemleak warning for percpu hashmap</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-37807</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 kmemleak warning for percpu hashmap&lt;/p&gt;
&lt;p&gt;Vlad Poenaru reported the following kmemleak issue:&lt;/p&gt;
&lt;p&gt;unreferenced object 0x606fd7c44ac8 (size 32):
    backtrace (crc 0):
      pcpu_alloc_noprof+0x730/0xeb0
      bpf_map_alloc_percpu+0x69/0xc0
      prealloc_init+0x9d/0x1b0
      htab_map_alloc+0x363/0x510
      map_create+0x215/0x3a0
      __sys_bpf+0x16b/0x3e0
      __x64_sys_bpf+0x18/0x20
      do_syscall_64+0x7b/0x150
      entry_SYSCALL_64_after_hwframe+0x4b/0x53&lt;/p&gt;
&lt;p&gt;Further investigation shows the reason is due to not 8-byte aligned
store of percpu pointer in htab_elem_set_ptr():
  *(void __percpu **)(l-&amp;gt;key + key_size) = pptr;&lt;/p&gt;
&lt;p&gt;Note that the whole htab_elem alignment is 8 (for x86_64). If the key_size
is 4, that means pptr is stored in a location which is 4 byte aligned but
not 8 byte aligned. In mm/kmemleak.c, scan_block() scans the memory based
on 8 byte stride, so it won&amp;#39;t detect above pptr, hence reporting the memory
leak.&lt;/p&gt;
&lt;p&gt;In htab_map_alloc(), we already have&lt;/p&gt;
&lt;p&gt;htab-&amp;gt;elem_size = sizeof(struct htab_elem) +
                          round_up(htab-&amp;gt;map.key_size, 8);
        if (percpu)
                htab-&amp;gt;elem_size += sizeof(void *);
        else
                htab-&amp;gt;elem_size += round_up(htab-&amp;gt;map.value_size, 8);&lt;/p&gt;
&lt;p&gt;So storing pptr with 8-byte alignment won&amp;#39;t cause any problem and can fix
kmemleak too.&lt;/p&gt;
&lt;p&gt;The issue can be reproduced with bpf selftest as well:
  1. Enable CONFIG_DEBUG_KMEMLEAK co…&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 kmemleak warning for percpu hashmap&lt;/p&gt;
&lt;p&gt;Vlad Poenaru reported the following kmemleak issue:&lt;/p&gt;
&lt;p&gt;unreferenced object 0x606fd7c44ac8 (size 32):
    backtrace (crc 0):
      pcpu_alloc_noprof+0x730/0xeb0
      bpf_map_alloc_percpu+0x69/0xc0
      prealloc_init+0x9d/0x1b0
      htab_map_alloc+0x363/0x510
      map_create+0x215/0x3a0
      __sys_bpf+0x16b/0x3e0
      __x64_sys_bpf+0x18/0x20
      do_syscall_64+0x7b/0x150
      entry_SYSCALL_64_after_hwframe+0x4b/0x53&lt;/p&gt;
&lt;p&gt;Further investigation shows the reason is due to not 8-byte aligned
store of percpu pointer in htab_elem_set_ptr():
  *(void __percpu **)(l-&amp;gt;key + key_size) = pptr;&lt;/p&gt;
&lt;p&gt;Note that the whole htab_elem alignment is 8 (for x86_64). If the key_size
is 4, that means pptr is stored in a location which is 4 byte aligned but
not 8 byte aligned. In mm/kmemleak.c, scan_block() scans the memory based
on 8 byte stride, so it won&amp;#39;t detect above pptr, hence reporting the memory
leak.&lt;/p&gt;
&lt;p&gt;In htab_map_alloc(), we already have&lt;/p&gt;
&lt;p&gt;htab-&amp;gt;elem_size = sizeof(struct htab_elem) +
                          round_up(htab-&amp;gt;map.key_size, 8);
        if (percpu)
                htab-&amp;gt;elem_size += sizeof(void *);
        else
                htab-&amp;gt;elem_size += round_up(htab-&amp;gt;map.value_size, 8);&lt;/p&gt;
&lt;p&gt;So storing pptr with 8-byte alignment won&amp;#39;t cause any problem and can fix
kmemleak too.&lt;/p&gt;
&lt;p&gt;The issue can be reproduced with bpf selftest as well:
  1. Enable CONFIG_DEBUG_KMEMLEAK co…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-37807</guid>
    </item>
  </channel>
</rss>
