Description
In the Linux kernel, the following vulnerability has been resolved:
perf/core: Fix data race between perf_event_set_output() and perf_mmap_close()
Yang Jihing reported a race between perf_event_set_output() and
perf_mmap_close():
CPU1 CPU2
perf_mmap_close(e2)
if (atomic_dec_and_test(&e2->rb->mmap_count)) // 1 - > 0
detach_rest = true
ioctl(e1, IOC_SET_OUTPUT, e2)
perf_event_set_output(e1, e2)
...
list_for_each_entry_rcu(e, &e2->rb->event_list, rb_entry)
ring_buffer_attach(e, NULL);
// e1 isn't yet added and
// therefore not detached
ring_buffer_attach(e1, e2->rb)
list_add_rcu(&e1->rb_entry,
&e2->rb->event_list)
After this; e1 is attached to an unmapped rb and a subsequent
perf_mmap() will loop forever more:
again:
mutex_lock(&e->mmap_mutex);
if (event->rb) {
...
if (!atomic_inc_not_zero(&e->rb->mmap_count)) {
...
mutex_unlock(&e->mmap_mutex);
goto again;
}
}
The loop in perf_mmap_close() holds e2->mmap_mutex, while the attach
in perf_event_set_output() holds e1->mmap_mutex. As such there is no
serialization to avoid this race.
Change perf_event_set_output() to take both e1->mmap_mutex and
e2->mmap_mutex to alleviate that problem. Additionally, have the loop
in perf_mmap() detach the rb directly, this avoids having to wait for
the concurrent perf_mmap_close() to get around to doing it to make
progress.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 3.2.49 – < 3.3, 3.4.52 – < 3.5, 3.9.8 – < 3.10, 3.10 | 3.3 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 5.18.16-1 | — |
| Debian 13 | linux | 5.18.16-1 | — |
| Debian 12 | linux | 5.18.16-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 24.04 LTS | linux-raspi-realtime | No fix yet | — |
| Ubuntu 22.04 LTS | linux +1 | 5.15.0-50.56 | — |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1021.25 | — |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1021.26 | — |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1024.30.1 | — |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1019.25 | — |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1017.20 | — |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1004.6 | — |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1015.17 | — |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1017.22 | — |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1019.23 | — |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1015.15 | — |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1019.24 | — |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1016.18 | — |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 20.04 LTS | linux | 5.4.0-128.144 | — |
| Ubuntu 20.04 LTS | linux-aws | 5.4.0-1086.93 | — |
| Ubuntu 20.04 LTS | linux-aws-5.15 | 5.15.0-1021.25~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-azure | 5.4.0-1094.100 | — |
| Ubuntu 20.04 LTS | linux-azure-5.15 | 5.15.0-1021.26~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-bluefield | 5.4.0-1047.52 | — |
| Ubuntu 20.04 LTS | linux-gcp | 5.4.0-1090.98 | — |
| Ubuntu 20.04 LTS | linux-gcp-5.15 | 5.15.0-1021.28~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 20.04 LTS | linux-hwe-5.15 +1 | 5.15.0-50.56~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-ibm | 5.4.0-1034.38 | — |
| Ubuntu 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1017.22~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-iot | 5.4.0-1005.7 | — |
| Ubuntu 20.04 LTS | linux-kvm | 5.4.0-1076.81 | — |
| Ubuntu 20.04 LTS | linux-oracle | 5.4.0-1084.92 | — |
| Ubuntu 20.04 LTS | linux-oracle-5.15 | 5.15.0-1019.24~20.04.1 | — |
| Ubuntu 20.04 LTS | linux-raspi | 5.4.0-1071.81 | — |
| Ubuntu 20.04 LTS | linux-riscv-5.15 | 5.15.0-1022.26~20.04.1 | — |
| Ubuntu 18.04 LTS | linux | 4.15.0-197.208 | — |
| Ubuntu 18.04 LTS | linux-aws | 4.15.0-1143.155 | — |
| Ubuntu 18.04 LTS | linux-aws-5.4 | 5.4.0-1086.93~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-azure-4.15 | 4.15.0-1157.172 | — |
| Ubuntu 18.04 LTS | linux-azure-5.4 | 5.4.0-1094.100~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp-4.15 | 4.15.0-1138.154 | — |
| Ubuntu 18.04 LTS | linux-gcp-5.4 | 5.4.0-1092.101~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-hwe-5.4 | 5.4.0-128.144~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-ibm-5.4 | 5.4.0-1034.38~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-kvm | 4.15.0-1129.134 | — |
| Ubuntu 18.04 LTS | linux-oracle | 4.15.0-1108.119 | — |
| Ubuntu 18.04 LTS | linux-oracle-5.4 | 5.4.0-1084.92~18.04.1 | — |
| Ubuntu 18.04 LTS | linux-raspi-5.4 | 5.4.0-1071.81~18.04.1 | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 9 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1022.22 | — |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-aws-fips | 5.4.0-1086.93+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-azure-fips | 5.4.0-1094.100+fips1 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips | 5.4.0-1062.70 | — |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-gcp-fips | 5.4.0-1092.101+fips1 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-aws-fips | 4.15.0-2082.88 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-azure-fips | 4.15.0-2066.72 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips | 4.15.0-1100.111 | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-gcp-fips | 4.15.0-2047.52 | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro 16.04 LTS | linux +2 | No fix yet | — |
| Ubuntu Pro 16.04 LTS | linux-aws-hwe | 4.15.0-1143.155~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-azure | 4.15.0-1159.174~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-gcp | 4.15.0-1138.154~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-hwe | 4.15.0-197.208~16.04.1 | — |
| Ubuntu Pro 16.04 LTS | linux-oracle | 4.15.0-1108.119~16.04.1 | — |
| Ubuntu Pro 14.04 LTS | linux +2 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux-azure | 4.15.0-1157.172~14.04.2 | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP5 | kernel-64kb +6 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLES 15 SP5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLES 15 SP4 | kernel-64kb +6 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLES 15 SP4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLES 12 SP5 | kernel-syms +2 | 4.12.14-122.255.1 | SUSE-SU-2025:1293-1 |
Show 12 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 15 SP5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLES for SAP 15 SP5 | kernel-docs +4 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLES for SAP 15 SP4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLES for SAP 15 SP4 | kernel-docs +4 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLE Micro 5.5 | kernel-rt +1 | 5.14.21-150500.13.91.1 | SUSE-SU-2025:1176-1 |
| SLE Micro 5.5 | kernel-source +1 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLE Micro 5.4 | kernel-default | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.4 | kernel-rt +1 | 5.14.21-150400.15.115.1 | SUSE-SU-2025:1183-1 |
| SLE Micro 5.3 | kernel-default | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.3 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SLE Micro 5.3 | kernel-rt +1 | 5.14.21-150400.15.115.1 | SUSE-SU-2025:1183-1 |
| SLE Live Patching 15 SP5 | kernel-default | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLE Live Patching 15 SP5 | kernel-livepatch-SLE15-SP5_Update_25 | 1-150500.11.3.1 | SUSE-SU-2025:1241-1 |
| SLE Live Patching 15 SP4 | kernel-default | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE Live Patching 15 SP4 | kernel-livepatch-SLE15-SP4_Update_38 | 1-150400.9.3.1 | SUSE-SU-2025:1027-1 |
| SLE Live Patching 12 SP5 | kernel-default | 4.12.14-122.255.1 | SUSE-SU-2025:1293-1 |
| SLE Live Patching 12 SP5 | kgraft-patch-SLE12-SP5_Update_67 | 1-8.5.1 | SUSE-SU-2025:1293-1 |
| SLE HPC 15 SP5 | kernel-64kb +5 | 5.14.21-150500.55.100.1 | SUSE-SU-2025:1241-1 |
| SLE HPC 15 SP5 | kernel-default-base | 5.14.21-150500.55.100.1.150500.6.47.1 | SUSE-SU-2025:1241-1 |
| SLE HPC 15 SP4 | kernel-64kb +5 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SLE HPC 15 SP4 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Server 4.3 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Server 4.3 | kernel-syms +3 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Proxy 4.3 | kernel-default-base | 5.14.21-150400.24.158.1.150400.24.78.1 | SUSE-SU-2025:1027-1 |
| SUSE Manager Proxy 4.3 | kernel-syms +2 | 5.14.21-150400.24.158.1 | SUSE-SU-2025:1027-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2 | kernel-livepatch-4.14.290-217.505 | 1.0-0.amzn2 | ALAS2-2025-2790 |
| Amazon Linux 2 | perf +8 | 4.14.290-217.505.amzn2 | ALAS2-2025-2790 |
Advisories 6
- SUSE-SU-2025:1176-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1241-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1027-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1183-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2025:1293-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2-2025-2790 Important: kernel security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · May 19, 2025
References
- https://git.kernel.org/stable/c/3bbd868099287ff9027db59029b502fcfa2202a0
- https://git.kernel.org/stable/c/f836f9ac95df15f1e0af4beb0ec20021e8c91998
- https://git.kernel.org/stable/c/17f5417194136517ee9bbd6511249e5310e5617c
- https://git.kernel.org/stable/c/98c3c8fd0d4c560e0f8335b79c407bbf7fc9462c
- https://git.kernel.org/stable/c/43128b3eee337824158f34da6648163d2f2fb937
- https://git.kernel.org/stable/c/da3c256e2d0ebc87c7db0c605c9692b6f1722074
- https://git.kernel.org/stable/c/a9391ff7a7c5f113d6f2bf6621d49110950de49c
- https://git.kernel.org/stable/c/68e3c69803dada336893640110cb87221bb01dcf