<?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 04:50:42 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64582 — RDMA/rxe: Fix a use-after-free problem in rxe_mmap</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64582</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;RDMA/rxe: Fix a use-after-free problem in rxe_mmap&lt;/p&gt;
&lt;p&gt;rxe_mmap() removes a rxe_mmap_info struct from the pending_mmaps list
and releases pending_lock while the struct&amp;#39;s kref is still at 1:&lt;/p&gt;
&lt;p&gt;list_del_init(&amp;amp;ip-&amp;gt;pending_mmaps);
   spin_unlock_bh(&amp;amp;rxe-&amp;gt;pending_lock);   /* ref == 1, no lock held */
   ret = remap_vmalloc_range(vma, ip-&amp;gt;obj, 0);  /* walks PTEs */
   [...]
   rxe_vma_open(vma);                    /* kref_get, ref → 2 */
   remap_vmalloc_range_partial() walks PTEs without any lock.&lt;/p&gt;
&lt;p&gt;A concurrent DESTROY_CQ ioctl on another CPU calls:&lt;/p&gt;
&lt;p&gt;kref_put(&amp;amp;q-&amp;gt;ip-&amp;gt;ref, rxe_mmap_release)   /* ref 1→0 */
    vfree(ip-&amp;gt;obj)   /* clears vmalloc PTEs mid-walk */
    kfree(ip)        /* frees rxe_mmap_info */&lt;/p&gt;
&lt;p&gt;This yields:&lt;/p&gt;
&lt;p&gt;1. Kernel crash, vmalloc_to_page() returns NULL when vfree wins the
   per-PTE race -&amp;gt; vm_insert_page(NULL) → GPF in validate_page_before_insert&lt;/p&gt;
&lt;p&gt;2. Page UAF, vmalloc_to_page() reads a stale PTE before vfree clears
   it. User VMA holds a PTE to a free&amp;#39;d page which might eventually get
   reallocated later by vmalloc which allows the attacker to get a clean
   page-level UAF.&lt;/p&gt;
&lt;p&gt;It is worth noting that even though a page-level UAF is possible given
   the strong primitive, it is statistically very difficult to achieve
   given the very short time window (after the last insert_page and before
   the kref_get).&lt;/p&gt;
&lt;p&gt;The call trace are as below:&lt;/p&gt;
&lt;p&gt;Oops: general protection fault, probably for…&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;RDMA/rxe: Fix a use-after-free problem in rxe_mmap&lt;/p&gt;
&lt;p&gt;rxe_mmap() removes a rxe_mmap_info struct from the pending_mmaps list
and releases pending_lock while the struct&amp;#39;s kref is still at 1:&lt;/p&gt;
&lt;p&gt;list_del_init(&amp;amp;ip-&amp;gt;pending_mmaps);
   spin_unlock_bh(&amp;amp;rxe-&amp;gt;pending_lock);   /* ref == 1, no lock held */
   ret = remap_vmalloc_range(vma, ip-&amp;gt;obj, 0);  /* walks PTEs */
   [...]
   rxe_vma_open(vma);                    /* kref_get, ref → 2 */
   remap_vmalloc_range_partial() walks PTEs without any lock.&lt;/p&gt;
&lt;p&gt;A concurrent DESTROY_CQ ioctl on another CPU calls:&lt;/p&gt;
&lt;p&gt;kref_put(&amp;amp;q-&amp;gt;ip-&amp;gt;ref, rxe_mmap_release)   /* ref 1→0 */
    vfree(ip-&amp;gt;obj)   /* clears vmalloc PTEs mid-walk */
    kfree(ip)        /* frees rxe_mmap_info */&lt;/p&gt;
&lt;p&gt;This yields:&lt;/p&gt;
&lt;p&gt;1. Kernel crash, vmalloc_to_page() returns NULL when vfree wins the
   per-PTE race -&amp;gt; vm_insert_page(NULL) → GPF in validate_page_before_insert&lt;/p&gt;
&lt;p&gt;2. Page UAF, vmalloc_to_page() reads a stale PTE before vfree clears
   it. User VMA holds a PTE to a free&amp;#39;d page which might eventually get
   reallocated later by vmalloc which allows the attacker to get a clean
   page-level UAF.&lt;/p&gt;
&lt;p&gt;It is worth noting that even though a page-level UAF is possible given
   the strong primitive, it is statistically very difficult to achieve
   given the very short time window (after the last insert_page and before
   the kref_get).&lt;/p&gt;
&lt;p&gt;The call trace are as below:&lt;/p&gt;
&lt;p&gt;Oops: general protection fault, probably for…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64582</guid>
    </item>
  </channel>
</rss>
