HIGH Introduced in 7.2
perf GroupLeader UAF
CVE-2026-74753
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI7.5HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: perf: Reject exited events as group leaders perf_event_remove_on_exec() sets remove-on-exec events to the EXIT state and detaches their group relationships. The event's file descriptor can remain open, however, and perf_event_open() currently accepts that event as a group leader because its early validation rejects only REVOKED and DEAD events. A new sibling can consequently be linked to the detached leader. When the leader is closed, perf_group_detach() observes that its PERF_ATTACH_GROUP bit is already clear and skips the new sibling. The sibling then retains a group_leader pointer to the freed event. Reject group leaders in the EXIT state. Perform the check while holding the shared context mutex so that an exec in the target task cannot detach the leader between validation and group attachment. [peterz: make the earlier test fully consistent]
02KernelScan AI Analysis
Risk summary
A local unprivileged user can exploit a use-after-free in the perf events subsystem by racing an exec against group leader validation. This can lead to arbitrary kernel code execution, allowing a complete system compromise or container escape. The bug is reachable by any local account with access to the perf_event_open syscall.
Vulnerability analysis
A local user can configure a performance event to be removed when a program is executed, then trigger that execution which detaches the event from its group while the file descriptor remains open. By racing to attach a new event to this detached leader before it is closed, the attacker can cause cleanup to skip the newly attached event. This leaves that event pointing to memory that has already been freed. The fix refuses to allow exited events to serve as group leaders, and protects the validation with proper locking so that an execution cannot detach the leader between the check and the attachment. The flaw is reachable by any unprivileged local user through the performance monitoring syscall, so it is exploitable from containers and multi-tenant systems that allow local code execution.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.6 | 6.6.145 | 6.6.156 | ce12e1170c0c |
| 6.12 | 6.12.96 | 6.12.108 | e593031ff19a |
| 6.18 | 6.18.39 | 6.18.46 | 7a03413f31c1 |
| 7.1 | 7.1.4 | 7.1.10 | 7ce010275c53 |
| cip/6.12 | 7.2 | 6.12.108-cip31 | e593031ff19a |