Vulnerability · Published Sep 16, 2026 · Assigned by Linux

CVE-2026-89791perf: Fix use-after-free when perf mmap() revival races with the last munmap()

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 8% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.2%top 91.9% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: perf: Fix use-after-free when perf mmap() revival races with the last munmap() perf_mmap_close() drops rb->mmap_count *without* holding event->mmap_mutex (the refcount_dec_and_test() right before the refcount_dec_and_mutex_lock() of event->mmap_count). A concurrent perf_mmap_rb() can slot its entire "revival" path into that window (perf_mmap holds event->mmap_mutex for its whole duration, including rb_alloc): munmap side (perf_mmap_close) mmap side (perf_mmap_rb) ----------------------------------- -------------------------------- rb->mmap_count 1 -> 0 (no lock) (holds event->mmap_mutex) inc_not_zero(rb->mmap_count) fails ring_buffer_attach(event, NULL) rb_alloc() + attach new rb refcount_set(&event->mmap_count, 1) lock; event->mmap_count 1 -> 0 ring_buffer_attach(event, NULL) ring_buffer_put() -> frees the *new* rb The revival's refcount_set(&event->mmap_count, 1) is an invisible 1 -> 1 write: the close frees the just-revived buffer although the other process still has it mapped -- a page-level use-after-free allowing local privilege escalation to root by any unprivileged user (default kernel.perf_event_paranoid=2). Swap the order of the two counter updates: event->mmap_count is dropped first via refcount_dec_and_mutex_lock(), so its 1 -> 0 transition and the ring_buffer_attach() stay serialized with perf_mmap(). rb->mmap_count == 0 then implies every event using the buffer is detached already, so the result of the rb->mmap_count drop can gate the remaining teardown directly and detach_rest is no longer needed. An earlier fix for this race from Kyle Zeng and David Lee takes event->mmap_mutex around both counter updates [0]; here the not-last close stays lockless.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:10kernel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug-devel-matched6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-debug-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-devel-matched6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-64k-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-abi-stablelists6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-cross-headers6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-devel-matched6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-debug-uki-virt6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-devel-matched6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-doc6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-headers6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-modules-extra-matched6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-debug6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-debug-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-debug-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-debug-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-debug-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-debug-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-64k-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-debug6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-debug-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-debug-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-debug-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-debug-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-debug-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-rt-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-tools6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-tools-libs6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-tools-libs-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-uki-virt6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-uki-virt-addons6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump-devel6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump-devel-matched6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump-modules6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump-modules-core6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10kernel-zfcpdump-modules-extra6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10libperf6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10perf6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10python3-perf6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10rtla6.12.0-211.68.1.el10_2ALSA-2026:88477
AlmaLinux:10rv6.12.0-211.68.1.el10_2ALSA-2026:88477
Debian:14linux7.2.6-1DEBIAN-CVE-2026-89791
Rocky Linux:10kernel0:6.12.0-211.68.1.el10_2RLSA-2026:88477
Ubuntu:26.04:LTSlinux7.0.0-42.42UBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-aws7.0.0-1016.17UBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-gcp7.0.0-1016.18UBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-42.42~24.04.1UBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-ibm7.0.0-1017.17UBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1017.17UBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-oracle7.0.0-1015.16UBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-89791
Ubuntu:26.04:LTSlinux-riscv7.0.0-42.42.1UBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-89791
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-42.42.1~24.04.1UBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-89791
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-89791

Affected products (as reported)

VendorProductVersions
Linux Linux 59741451b49ce9964a9758c19d6f7df2a1255c75 – before 929cb3b9dc818dd9fa89d510d4ff2b255e42badd59741451b49ce9964a9758c19d6f7df2a1255c75 – before 0c739f54f1c77f3a4643160cd2e031b6c2f2aab659741451b49ce9964a9758c19d6f7df2a1255c75 – before 58a8108bc73de0740d5b88150465d6690ea5f85f
Linux Linux 6.18

References