CVE-2026-64300 PUBLISHED

perf/aux: Fix page UAF in map_range()

Assigner: Linux
Reserved: 19.07.2026 Published: 25.07.2026 Updated: 25.07.2026

In the Linux kernel, the following vulnerability has been resolved:

perf/aux: Fix page UAF in map_range()

map_range() reads rb->aux_pages[], rb->aux_nr_pages and rb->aux_pgoff via perf_mmap_to_page() while holding only event->mmap_mutex. Those fields are serialized by rb->aux_mutex, and mmap_mutex is per event.

Thus, two events sharing one rb via PERF_EVENT_IOC_SET_OUTPUT can race rb_alloc_aux() with map_range(), leading to a page-UAF scenario as follows:

CPU 0 CPU 1 ===== ===== rb_alloc_aux() map_range() [1]: allocate rb->aux_pages[0]

<pre> [3]: perf_mmap_to_page() returns rb->aux_pages[0] [4]: map it as VM_PFNMAP </pre>

[5]: rb->aux_pgoff = 1

munmap the page [6]: free rb->aux_pages[0]

Pages mapped as VM_PFNMAP have no refcount protection, so CPU 1 holds a mapping to a freed physical frame.

Fix this by taking rb->aux_mutex across the page walk in map_range().

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from b709eb872e19a19607bbb6d2975bc264d59735cf to c8b7e113f7b61eef2f017e6329c27c2331058c5a (excl.)
  • affected from b709eb872e19a19607bbb6d2975bc264d59735cf to 0cff05bd2186020f8706233e261016d149cc24db (excl.)
  • affected from b709eb872e19a19607bbb6d2975bc264d59735cf to 5948aaf64f81f217a25dcc2bf6c0779bca19566c (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.14 is affected
  • unaffected from 0 to 6.14 (excl.)
  • unaffected from 6.18.39 to 6.18.* (incl.)
  • unaffected from 7.1.4 to 7.1.* (incl.)
  • unaffected from 7.2-rc3 to * (incl.)

References