GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel perf: use-after-free when an mmap revival races the last munmap, giving local root

CVSS 7.8CVE-2026-89791Kernel, userspace & hypervisorcurated

Impact

perf_mmap_close() drops the ring buffer's mmap_count without holding event->mmap_mutex, so a concurrent perf_mmap() that re-attaches a freshly allocated ring buffer can have that new buffer freed underneath it while it is still mapped. The result is a page-level use-after-free that the commit message describes as local privilege escalation to root, reachable by an unprivileged user under the default kernel.perf_event_paranoid=2. On a GPU node that matters because any tenant with shell access in a container that has not blocked perf_event_open - profiling and observability workloads routinely need it - can escalate out of their job and reach the driver, the other tenants' GPUs and the node's credentials. Winning the race takes only repeated mmap/munmap of a perf event, no special hardware.

Who can reach it

Local. Any unprivileged user or containerized tenant able to call perf_event_open() and mmap the resulting ring buffer; no special capability is required at the default paranoid setting.

What to do

Take the stable-kernel update carrying the reordered counter drops (event->mmap_count dropped first under refcount_dec_and_mutex_lock). There is no in-tree runtime fix, so this is a kernel upgrade: drain the node's jobs and reboot into the patched kernel, or kexec if your fleet supports it. Until the reboot window, raising kernel.perf_event_paranoid and denying perf_event_open in the container seccomp profile removes reachability for untrusted tenants, at the cost of breaking tenant profiling.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.