powerpc/perf: fix preempt count underflow in fsl_emb_pmu_del (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.22 % · percentile 13 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Received
Description
In the Linux kernel, the following vulnerability has been resolved: powerpc/perf: fix preempt count underflow in fsl_emb_pmu_del fsl_emb_pmu_del() unconditionally calls put_cpu_var(cpu_hw_events) at the 'out:' label, but only calls the matching get_cpu_var() after the 'i < 0' early-return check. When event->hw.idx is negative the function jumps to 'out:' without having taken get_cpu_var(), and the trailing put_cpu_var() then issues an unmatched preempt_enable(), underflowing preempt_count. On a CONFIG_PREEMPT=y kernel preempt_count would underflow and eventually present as a 'scheduling while atomic' BUG. Move put_cpu_var() to pair with get_cpu_var() so the percpu access is correctly bracketed and the 'out:' label only handles perf_pmu_enable.
References
- https://git.kernel.org/stable/c/c0c7722308c5f303117d8bd555290fdf26b098da
- https://git.kernel.org/stable/c/67aeb1eb93d4ffd898a3e74a7f3fe46ee71feb28
- https://git.kernel.org/stable/c/9a515e00b00132b6fc3f1dd62dc5204bbda8cb10
- https://git.kernel.org/stable/c/5397142d60aa29dcf636f5459d960bfc4f97c42a
- https://git.kernel.org/stable/c/b89477077c834d94381c7bf07d81193bebefcff9
- https://git.kernel.org/stable/c/73711688479df333acc134e3730fff1acba1843e
- https://git.kernel.org/stable/c/b504fd953664c3f4d176ae8cb594adb3fda9d577
- https://git.kernel.org/stable/c/81e3a86030462824a67d697739cf3f387f4ba350
European references
- ENISA EUVD · EUVD-2026-67502
- GCVE · GCVE-0-2026-80626
CERT-FR advisories
- CERTFR-2026-AVI-1385 — Multiples vulnérabilités dans les produits VMware · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1333 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1286 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected a11106544f33c104706ae42d27219a409b67478e < c0c7722308c5f303117d8bd555290fdf26b098da ; affected a11106544f33c104706ae42d27219a409b67478e < 67aeb1eb93d4ffd898a3e74a7f3fe46ee71feb28 ; affected a11106544f33c104706ae42d27219a409b67478e < 9a515e00b00132b6fc3f1dd62dc5204bbda8cb10 ; affected a11106544f33c104706ae42d27219a409b67478e < 5397142d60aa29dcf636f5459d960bfc4f97c42a ; affected a11106544f33c104706ae42d27219a409b67478e < b89477077c834d94381c7bf07d81193bebefcff9 ; affected a11106544f33c104706ae42d27219a409b67478e < 73711688479df333acc134e3730fff1acba1843e |
| Linux · Linux | affected 2.6.34 ; unaffected 0 < 2.6.34 ; unaffected 5.10.261 ≤ 5.10.* ; unaffected 5.15.212 ≤ 5.15.* ; unaffected 6.1.178 ≤ 6.1.* ; unaffected 6.6.145 ≤ 6.6.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |