Look up another CVE · open CVE-2026-74753 in the interactive tracker
CVE-2026-74753
perf: Reject exited events as group leaders
Published 2026-08-26 (2 months ago) by the Linux kernel CNA. Subsystem kernel/events. Debian urgency: unimportant.
What to do, per Debian release
Debian's own status for CVE-2026-74753 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | not affected | 6.1.190-1 | Nothing to do. bookworm never shipped the vulnerable code. |
| Debian 13trixie | fixedDSA-6528-1 · 2026-09-29 · text | 6.12.111-1 | Update the kernel and reboot. DSA-6528-1 shipped the fix on 2026-09-29, in 6.12.111-1. A running kernel keeps the old code until the machine restarts. |
| Debian 14forky | fixed | 7.1.10-1 | Update the kernel and reboot. Fixed in 7.1.10-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.1.10-1 | Update the kernel and reboot. Fixed in 7.1.10-1. A running kernel keeps the old code until the machine restarts. |
| Debian 12bookworm · linux-6.12 | fixedDLA-4817-1 · 2026-10-04 · text | 6.12.111-1~deb12u1 | Update the kernel and reboot. DLA-4817-1 shipped the fix on 2026-10-04, in 6.12.111-1~deb12u1. A running kernel keeps the old code until the machine restarts. |
The vulnerability
What the bug is
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]
Where it lives
The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.
kernel/events/core.c
- What this is
- PERFORMANCE EVENTS SUBSYSTEMMAINTAINERS section matched on kernel/events/* · linux-perf-users@vger.kernel.org · Supported
Check it on the machine
grep -w CONFIG_PERF_EVENTS /boot/config-$(uname -r)Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.
Show whether Debian builds this, per release
Debian builds this code. Every release below compiles the affected file into the kernels it ships.
- bookworm, trixie, forky, sid, bookworm · linux-6.12y
- y
- built into the kernel image on every flavour - only a patch removes it
- Build switch
- CONFIG_PERF_EVENTS
From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages
Signals
- Published
- 2026-08-26 (2 months ago)source
- CVSS
- 7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it - Attack vector
- local (AV:L)source
- EPSS
- 0.13%, higher than 2.2% of all CVEssource
- CISA KEV
- not listedthe KEV catalogue
- Debian urgency
- unimportantsource
- Subsystem
- kernel/events
Upstream fixes
The versions the CNA records as introducing and fixing this, and the commit for each. source
| Introduced | Fixed in | Commit |
|---|---|---|
| 6.6.145 | 6.6.156 | ce12e1170c0c |
| 6.12.96 | 6.12.108 | e593031ff19a |
| 6.18.39 | 6.18.46 | 7a03413f31c1 |
| 7.1.4 | 7.1.10 | 7ce010275c53 |
| 7.2 | 7.2 | fa091f46c383 |
Debian advisories
| Advisory | Date | Shipped to | Debian |
|---|---|---|---|
| DLA-4817-1 | 2026-10-04 | bookworm 6.12.111-1~deb12u1 | tracker |
| DSA-6528-1 | 2026-09-29 | trixie 6.12.111-1 | tracker |
Why the CNA scored it this way
Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source
- AV:LAttack vector, local
- The bug is reached only through local syscalls—perf_event_open(2) to create a remove_on_exec group leader and attach a sibling, execve(2) to move the leader to EXIT state, close(2) to free it, then ioctl/read on the sibling. There is no network, adjacent-wireless, or physical device entry path.
- AC:LAttack complexity, low
- The attacker fully controls the deterministic sequence: open leader with remove_on_exec, exec, open sibling against the leader fd, close leader, then trigger group operations on the sibling. No race or condition outside attacker control is required; the stale group_leader pointer is created reliably.
- PR:LPrivileges required, low
- A basic unprivileged local user can open per-task perf event groups on their own process with exclude_kernel=1 under the default sysctl_perf_event_paranoid=2, without CAP_PERFMON or init-namespace root. security_perf_event_open(PERF_SECURITY_OPEN) and perf_check_permission() allow this self-monitoring path.
- UI:NUser interaction, none
- Exploitation requires no action from another user or administrator beyond the attacker running their own syscalls (open group, exec, attach sibling, close leader, ioctl/read sibling). No victim must mount filesystems, open files, or interact with the system.
- S:UScope, unchanged
- Impact is confined to kernel perf/core heap corruption and privilege escalation within the same host kernel security authority. This is not a VM escape, IOMMU bypass, or cross-namespace boundary change; it is standard local kernel memory corruption.
- C:HConfidentiality impact, high
- This is a use-after-free: after the EXIT-state leader is freed, the sibling retains group_leader pointing at freed memory, and perf_event_for_each(), __perf_effective_state(), and group reads/ioctls dereference the freed leader and its context, enabling arbitrary kernel memory disclosure via controlled reallocations.
- I:HIntegrity impact, high
- Freed perf_event/group_leader structures can be reallocated with attacker-controlled data, providing heap grooming primitives for arbitrary kernel writes and control-flow hijack. Memory corruption from following the stale group_leader pointer is exploitable beyond a simple crash.
- A:HAvailability impact, high
- UAF dereferences of the freed group_leader reliably cause kernel paging faults, oops, or panic when the sibling is read, enabled, or ioctl'd (as in related perf group_leader UAF reproducers). UAF on attacker-influenceable perf_event objects causes full denial of service and potential system-wide unavailability.