Linux: perf: Fix race between perf_event_exit_task() and perf_pending_task()
What fixes it
- 655acfa713bce9ae9c81a654459890c2f58cb4e8LinuxCVE List
- 672b8a9ce8f51b991481dfde26fba5cc4340a91aLinuxCVE List
- 524063fea29f8a841e49927ea7a8085194ad3ec2LinuxCVE List
- 81e61e3f8befa1bae3ec8e779d8ada5e5e362c21LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
perf: Fix race between perf_event_exit_task() and perf_pending_task()
A race condition exists between perf_event_exit_task() and perf_pending_task() during begin_new_exec().
During begin_new_exec(), perf_event_exit_task() may be called, and the PF_EXITING flag is not set on task. So perf_sigtrap() continues to execute and triggers WARN_ON_ONCE(event->ctx->task != current).
Since both task exit and exec paths can call perf_event_exit_task() which sets ctx->task to TASK_TOMBSTONE, fix this by explicitly checking if event->ctx->task equals TASK_TOMBSTONE and dropping the redundant PF_EXITING check.
Text from CVE List
Affected versions 12
- Linuxaffected: 97ba62b278674293762c3d91f724f1bb922f04e0 before 655acfa713bce9ae9c81a654459890c2f58cb4e8CVE List
- Linuxaffected: 97ba62b278674293762c3d91f724f1bb922f04e0 before 672b8a9ce8f51b991481dfde26fba5cc4340a91aCVE List
- Linuxaffected: 97ba62b278674293762c3d91f724f1bb922f04e0 before 524063fea29f8a841e49927ea7a8085194ad3ec2CVE List
- Linuxaffected: 97ba62b278674293762c3d91f724f1bb922f04e0 before 81e61e3f8befa1bae3ec8e779d8ada5e5e362c21CVE List
- Linuxaffected: 97ba62b278674293762c3d91f724f1bb922f04e0 before ffb684f2aa141eeb0caa6308422e7e05d1ded7c4CVE List
- Linuxaffected: 5.13CVE List
- Linuxunaffected: all versions before 5.13CVE List
- Linuxunaffected: 6.6.160 through 6.6.*CVE List
- Linuxunaffected: 6.12.113 through 6.12.*CVE List
- Linuxunaffected: 6.18.56 through 6.18.*CVE List
- Linuxunaffected: 7.2.10 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/655acfa713bce9ae9c81a654459890c2f58cb4e8Referencevia CVE List
- git.kernel.org/stable/c/672b8a9ce8f51b991481dfde26fba5cc4340a91aReferencevia CVE List
- git.kernel.org/stable/c/524063fea29f8a841e49927ea7a8085194ad3ec2Referencevia CVE List
- git.kernel.org/stable/c/81e61e3f8befa1bae3ec8e779d8ada5e5e362c21Referencevia CVE List
- git.kernel.org/stable/c/ffb684f2aa141eeb0caa6308422e7e05d1ded7c4Referencevia CVE List