Description
In the Linux kernel, the following vulnerability has been resolved:

perf/core: Allow list_del during perf_event_overflow()

A PMU might use perf_sched_cb_inc() and perf_sched_cb_dec()
interface to get the PMU call back function pmu::sched_task
invoked at schedule in and schedule out. This is achieved
by walking along the list anchored by sched_cb_list.

The following scenario might lead to a list corruption.

perf_pmu_sched_task()
for_each_list_entry(..., &sched_cb_list)
+--> __perf_pmu_sched_task()
+--> event->pmu->sched_task())
+--> PMU_push_sample()
+--> perf_event_overflow()
+--> __perf_event_overflow()
+--> pmu->stop()
+--> perf_sched_cb_dec()
remove entry from sched_cb_list
while list node in use.

This happens when ioctl(fd, PERF_EVENT_IOC_REFRESH, xxx) has been
invoked and perf_event::event_limit hits zero.

Prevent the list corruption and convert for_each_list_entry()
to for_each_list_entry_safe().
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Kernel Data Corruption
Action: Apply Patch
AI Analysis

Impact

A flaw in the Linux kernel’s perf subsystem allows a node to be removed from the sched_cb_list while the list is still being traversed. This occurs when an ioctl() of type PERF_EVENT_IOC_REFRESH triggers perf_event_overflow(), which leads to pmu->stop() removing an entry from the list during an active iteration. The result is corruption of kernel data structures, potentially causing a crash or other unstable behavior. The patch replaces the unsafe for_each_list_entry with for_each_list_entry_safe to prevent the corruption.

Affected Systems

This vulnerability applies to all Linux kernel builds that contain the unpatched perf/core implementation, including mainstream distributions prior to the commit 59e63416f5 and any custom kernels that have not integrated the fix.

Risk and Exploitability

Based on the description, it is inferred that an attacker would need local access to open a perf event and trigger the ioctl() sequence. The CVSS score is 5.5, the EPSS score is < 1%, and the vulnerability is not listed in the CISA KEV catalog. The described list corruption could lead to kernel memory corruption or a crash, and while arbitrary code execution is not explicitly stated in the description, such an outcome is conceivable. The exploitation vector is therefore local, with risk moderate unless mitigated.

Generated by OpenCVE AI on October 1, 2026 at 06:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that includes commit 59e63416f5 to replace the unsafe list traversal with a safe iteration method.
  • Restrict or audit use of PERF_EVENT_IOC_REFRESH; limit its execution to trusted processes or disable it if not required.
  • Enable kernel lockdep or other integrity checks, and monitor system logs for abnormal behavior in the perf subsystem to detect potential corruption.

Generated by OpenCVE AI on October 1, 2026 at 06:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Wed, 21 Oct 2026 13:15:00 +0000


Thu, 01 Oct 2026 05:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 30 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: perf/core: Allow list_del during perf_event_overflow() A PMU might use perf_sched_cb_inc() and perf_sched_cb_dec() interface to get the PMU call back function pmu::sched_task invoked at schedule in and schedule out. This is achieved by walking along the list anchored by sched_cb_list. The following scenario might lead to a list corruption. perf_pmu_sched_task() for_each_list_entry(..., &sched_cb_list) +--> __perf_pmu_sched_task() +--> event->pmu->sched_task()) +--> PMU_push_sample() +--> perf_event_overflow() +--> __perf_event_overflow() +--> pmu->stop() +--> perf_sched_cb_dec() remove entry from sched_cb_list while list node in use. This happens when ioctl(fd, PERF_EVENT_IOC_REFRESH, xxx) has been invoked and perf_event::event_limit hits zero. Prevent the list corruption and convert for_each_list_entry() to for_each_list_entry_safe().
Title perf/core: Allow list_del during perf_event_overflow()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-21T12:53:52.027Z

Reserved: 2026-09-25T10:18:58.206Z

Link: CVE-2026-97961

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:23.860

Modified: 2026-10-21T13:21:17.717

Link: CVE-2026-97961

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97961 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T06:45:02Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference