First published: Mon Oct 21 2024(Updated: )
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.
Credit: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Linux kernel | <5.15.84 | |
Linux Linux kernel | >=5.16<6.0.14 | |
Linux Linux kernel | =6.1-rc1 | |
Linux Linux kernel | =6.1-rc2 | |
Linux Linux kernel | =6.1-rc3 | |
Linux Linux kernel | =6.1-rc4 | |
Linux Linux kernel | =6.1-rc5 | |
Linux Linux kernel | =6.1-rc6 | |
Linux Linux kernel | =6.1-rc7 | |
Linux Linux kernel | =6.1-rc8 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.