CVE-2026-64300 in Linux
Resumen
por VulDB • 2026-07-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
perf/aux: Corregir un Use-After-Free (UAF) en map_range()
map_range() lee los campos rb->aux_pages[], rb->aux_nr_pages y rb->aux_pgoff a través de perf_mmap_to_page() mientras solo mantiene bloqueado event->mmap_mutex. Estos campos están sincronizados mediante rb->aux_mutex, y mmap_mutex es específico por evento (per-event).
Por lo tanto, dos eventos que comparten un mismo ring buffer (rb) a través de PERF_EVENT_IOC_SET_OUTPUT pueden provocar una condición de carrera entre rb_alloc_aux() y map_range(), dando lugar a un escenario Use-After-Free en páginas como se describe a continuación:
CPU 0 CPU 1 ===== ===== rb_alloc_aux() map_range() [1]: asigna rb->aux_pages[0]
[2]: rb->aux_nr_pages++
[3]: perf_mmap_to_page()
devuelve rb->aux_pages[0]
[4]: lo mapea como VM_PFNMAP
[5]: rb->aux_pgoff = 1
munmap de la página [6]: libera rb->aux_pages[0]
Las páginas mapeadas como VM_PFNMAP no tienen protección mediante recuento de referencias (refcount), por lo que CPU 1 mantiene un mapeo a una estructura física liberada.
Se corrige este problema adquiriendo rb->aux_mutex durante el recorrido de las páginas en map_range().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.