Description
In the Linux kernel, the following vulnerability has been resolved: perf/core: Detach event groups during remove_on_exec perf_event_remove_on_exec() removes events by calling perf_event_exit_event(). For top-level events, this removes the event from the context with DETACH_EXIT only. This can leave inconsistent group state when a removed event is a group leader and the group contains siblings without remove_on_exec. If the group was active, the surviving siblings can remain active and attached to the removed leader's sibling list, but are no longer represented by a valid group leader on the PMU context active lists. A later close of the removed leader uses DETACH_GROUP and can promote the still-active siblings from this stale group state. The next schedule-in can then add an already-linked active_list entry again, corrupting the PMU context active list. With DEBUG_LIST enabled, this is caught as a list_add double-add in merge_sched_in(). Fix this by detaching group relationships when remove_on_exec removes an event. This preserves the existing task-exit and revoke behavior, while ensuring surviving siblings are ungrouped before the removed event leaves the context.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
2e498d0a74e5b88a6689ae1b811f247f91ff188e to < 4cdb1b3ab96eb1b7eb70bc5c82fede334bd60df2affected2e498d0a74e5b88a6689ae1b811f247f91ff188e to < 39358e856fb89e62e3c8d7389a2dc4ec33dbe90eaffected2e498d0a74e5b88a6689ae1b811f247f91ff188e to < a2d5d3ee7b6e3953114726b1521e62123ab5b043affected2e498d0a74e5b88a6689ae1b811f247f91ff188e to < 06ccef0434e98058ddae7bcebc901f93d22b7653affected2e498d0a74e5b88a6689ae1b811f247f91ff188e to < 037a3c43edfb597665dd34457cd22b14692f2ba3affected
Linux Linux
Default version status: affected
5.13affected0 to < 5.13unaffected6.6.145 to ≤ 6.6.*unaffected6.12.96 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/4cdb1b3ab96eb1b7eb70bc5c82fede334bd60df2 ↗
- https://git.kernel.org/stable/c/39358e856fb89e62e3c8d7389a2dc4ec33dbe90e ↗
- https://git.kernel.org/stable/c/a2d5d3ee7b6e3953114726b1521e62123ab5b043 ↗
- https://git.kernel.org/stable/c/06ccef0434e98058ddae7bcebc901f93d22b7653 ↗
- https://git.kernel.org/stable/c/037a3c43edfb597665dd34457cd22b14692f2ba3 ↗