CVE-2026-64556: perf/core: Detach event groups during remove_on_exec

Greg Kroah-Hartman <[email protected]> Wed, 29 Jul 2026 10:01:40 +0200
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026072939-CVE-2026-64556-0f2c@gregkh>
From: Greg Kroah-Hartman <[email protected]>

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.

The Linux kernel CVE team has assigned CVE-2026-64556 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.13 with commit 2e498d0a74e5b88a6689ae1b811f247f91ff188e and fixed in 6.6.145 with commit 4cdb1b3ab96eb1b7eb70bc5c82fede334bd60df2
	Issue introduced in 5.13 with commit 2e498d0a74e5b88a6689ae1b811f247f91ff188e and fixed in 6.12.96 with commit 39358e856fb89e62e3c8d7389a2dc4ec33dbe90e
	Issue introduced in 5.13 with commit 2e498d0a74e5b88a6689ae1b811f247f91ff188e and fixed in 6.18.39 with commit a2d5d3ee7b6e3953114726b1521e62123ab5b043
	Issue introduced in 5.13 with commit 2e498d0a74e5b88a6689ae1b811f247f91ff188e and fixed in 7.1.4 with commit 06ccef0434e98058ddae7bcebc901f93d22b7653
	Issue introduced in 5.13 with commit 2e498d0a74e5b88a6689ae1b811f247f91ff188e and fixed in 7.2-rc2 with commit 037a3c43edfb597665dd34457cd22b14692f2ba3

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-64556
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	kernel/events/core.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	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