What’s Vulnerable › Vulnerabilities
CVE-2022-48950: perf: Fix perf_pending_task() UaF
- Severity: high (CVSS 7.8 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2024-10-21 · updated 2026-08-04
- Weakness: CWE-416
Description
In the Linux kernel, the following vulnerability has been resolved: perf: Fix perf_pending_task() UaF Per syzbot it is possible for perf_pending_task() to run after the event is free()'d. There are two related but distinct cases: - the task_work was already queued before destroying the event; - destroying the event itself queues the task_work. The first cannot be solved using task_work_cancel() since perf_release() itself might be called from a task_work (____fput), which means the current->task_works list is already empty and task_work_cancel() won't be able to find the perf_pending_task() entry. The simplest alternative is extending the perf_event lifetime to cover the task_work. The second is just silly, queueing a task_work while you know the event is going away makes no sense and is easily avoided by re-arranging how the event is marked STATE_DEAD and ensuring it goes through STATE_OFF on the way down.
Affected products
- Linux kernel: before 5.15.84; from 5.16 before 6.0.14; 6.1-rc1, 6.1-rc2, 6.1-rc3, 6.1-rc4, 6.1-rc5, 6.1-rc6 (+2) — fixed in 5.15.84, 6.0.14
How to fix
Upgrade to a fixed version: Linux kernel 5.15.84, 6.0.14. Check the vendor advisory for mitigations.
References
- https://git.kernel.org/stable/c/517e6a301f34613bff24a8e35b5455884f2d83d8
- https://git.kernel.org/stable/c/78e1317a174edbfd1182599bf76c092a2877672c
- https://git.kernel.org/stable/c/8bffa95ac19ff27c8261904f89d36c7fcf215d59
Get alerted when CVE-2022-48950 or the next vulnerability affects your stack