<?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 17:14:11 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-45837 — bpf: Fix use-after-free in arena_vm_close on fork</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-45837</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 use-after-free in arena_vm_close on fork&lt;/p&gt;
&lt;p&gt;arena_vm_open() only bumps vml-&amp;gt;mmap_count but never registers the
child VMA in arena-&amp;gt;vma_list. The vml-&amp;gt;vma always points at the
parent VMA, so after parent munmap the pointer dangles. If the child
then calls bpf_arena_free_pages(), zap_pages() reads the stale
vml-&amp;gt;vma triggering use-after-free.&lt;/p&gt;
&lt;p&gt;Fix this by preventing the arena VMA from being inherited across
fork with VM_DONTCOPY, and preventing VMA splits via the may_split
callback.&lt;/p&gt;
&lt;p&gt;Also reject mremap with a .mremap callback returning -EINVAL. A
same-size mremap(MREMAP_FIXED) on the full arena VMA reaches
copy_vma() through the following path:&lt;/p&gt;
&lt;p&gt;check_prep_vma()       - returns 0 early: new_len == old_len
                           skips VM_DONTEXPAND check
  prep_move_vma()        - vm_start == old_addr and
                           vm_end == old_addr + old_len
                           so may_split is never called
  move_vma()
    copy_vma_and_data()
      copy_vma()
        vm_area_dup()    - copies vm_private_data (vml pointer)
        vm_ops-&amp;gt;open()   - bumps vml-&amp;gt;mmap_count
      vm_ops-&amp;gt;mremap()   - returns -EINVAL, rollback unmaps new VMA&lt;/p&gt;
&lt;p&gt;The refcount ensures the rollback&amp;#39;s arena_vm_close does not free
the vml shared with the original VMA.&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 use-after-free in arena_vm_close on fork&lt;/p&gt;
&lt;p&gt;arena_vm_open() only bumps vml-&amp;gt;mmap_count but never registers the
child VMA in arena-&amp;gt;vma_list. The vml-&amp;gt;vma always points at the
parent VMA, so after parent munmap the pointer dangles. If the child
then calls bpf_arena_free_pages(), zap_pages() reads the stale
vml-&amp;gt;vma triggering use-after-free.&lt;/p&gt;
&lt;p&gt;Fix this by preventing the arena VMA from being inherited across
fork with VM_DONTCOPY, and preventing VMA splits via the may_split
callback.&lt;/p&gt;
&lt;p&gt;Also reject mremap with a .mremap callback returning -EINVAL. A
same-size mremap(MREMAP_FIXED) on the full arena VMA reaches
copy_vma() through the following path:&lt;/p&gt;
&lt;p&gt;check_prep_vma()       - returns 0 early: new_len == old_len
                           skips VM_DONTEXPAND check
  prep_move_vma()        - vm_start == old_addr and
                           vm_end == old_addr + old_len
                           so may_split is never called
  move_vma()
    copy_vma_and_data()
      copy_vma()
        vm_area_dup()    - copies vm_private_data (vml pointer)
        vm_ops-&amp;gt;open()   - bumps vml-&amp;gt;mmap_count
      vm_ops-&amp;gt;mremap()   - returns -EINVAL, rollback unmaps new VMA&lt;/p&gt;
&lt;p&gt;The refcount ensures the rollback&amp;#39;s arena_vm_close does not free
the vml shared with the original VMA.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-45837</guid>
    </item>
  </channel>
</rss>
