CVE-2026-80626
N/A
Summary
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.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < c0c7722308c5f303117d8bd555290fdf26b098da | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < 67aeb1eb93d4ffd898a3e74a7f3fe46ee71feb28 | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < 9a515e00b00132b6fc3f1dd62dc5204bbda8cb10 | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < 5397142d60aa29dcf636f5459d960bfc4f97c42a | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < b89477077c834d94381c7bf07d81193bebefcff9 | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < 73711688479df333acc134e3730fff1acba1843e | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < b504fd953664c3f4d176ae8cb594adb3fda9d577 | affected |
| Linux | Linux | a11106544f33c104706ae42d27219a409b67478e < 81e3a86030462824a67d697739cf3f387f4ba350 | affected |
| Linux | Linux | 2.6.34 | affected |
| Linux | Linux | 0 < 2.6.34 | unaffected |
| Linux | Linux | 5.10.261 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.212 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.178 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.145 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.97 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.40 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.5 <= 7.1.* | unaffected |
| Linux | Linux | 7.2 <= * | unaffected |
Weaknesses
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
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.