GHSA-643V-C574-JXR9
Vulnerability from github – Published: 2026-07-25 12:31 – Updated: 2026-07-27 06:30In 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]
[3]: perf_mmap_to_page()
returns rb->aux_pages[0]
[4]: map it as VM_PFNMAP
[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().
{
"affected": [],
"aliases": [
"CVE-2026-64300"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-07-25T10:17:10Z",
"severity": "HIGH"
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nperf/aux: Fix page UAF in map_range()\n\nmap_range() reads rb-\u003eaux_pages[], rb-\u003eaux_nr_pages and rb-\u003eaux_pgoff via\nperf_mmap_to_page() while holding only event-\u003emmap_mutex. Those fields are\nserialized by rb-\u003eaux_mutex, and mmap_mutex is per event.\n\nThus, two events sharing one rb via PERF_EVENT_IOC_SET_OUTPUT can race\nrb_alloc_aux() with map_range(), leading to a page-UAF scenario as follows:\n\n CPU 0 CPU 1\n ===== =====\n rb_alloc_aux() map_range()\n [1]: allocate rb-\u003eaux_pages[0]\n [2]: rb-\u003eaux_nr_pages++\n [3]: perf_mmap_to_page()\n returns rb-\u003eaux_pages[0]\n [4]: map it as VM_PFNMAP\n [5]: rb-\u003eaux_pgoff = 1\n\n munmap the page\n [6]: free rb-\u003eaux_pages[0]\n\nPages mapped as VM_PFNMAP have no refcount protection, so CPU 1 holds a\nmapping to a freed physical frame.\n\nFix this by taking rb-\u003eaux_mutex across the page walk in map_range().",
"id": "GHSA-643v-c574-jxr9",
"modified": "2026-07-27T06:30:31Z",
"published": "2026-07-25T12:31:30Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-64300"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/0cff05bd2186020f8706233e261016d149cc24db"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/5948aaf64f81f217a25dcc2bf6c0779bca19566c"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/c8b7e113f7b61eef2f017e6329c27c2331058c5a"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.