UBUNTU-CVE-2026-97961: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: perf/core: Allow listdel during perfeventoverflow() A PMU might use perfschedcbinc() and perfschedcbdec() interface to get the PMU call back function pmu::schedtask invoked at schedule in and schedule out. This is achieved by walking along the list anchored by schedcblist. The following scenario might lead to a list corruption. perfpmuschedtask() foreachlistentry(..., &schedcblist) +--> perfpmuschedtask() +--> event->pmu->schedtask()) +--> PMUpushsample() +--> perfeventoverflow() +--> perfeventoverflow() +--> pmu->stop() +--> perfschedcbdec() remove entry from schedcblist while list node in use. This happens when ioctl(fd, PERFEVENTIOCREFRESH, xxx) has been invoked and perfevent::eventlimit hits zero. Prevent the list corruption and convert foreachlistentry() to foreachlistentrysafe().
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In perf_pmu_sched_task(), replace for_each_list_entry() with for_each_list_entry_safe() when walking sched_cb_list to prevent list corruption if perf_sched_cb_dec() removes the current entry during perf_event_overflow().
Event History
Frequently Asked Questions
Which Ubuntu kernel packages are listed as affected?
The listed packages are ubuntu/linux-riscv, ubuntu/linux-realtime, ubuntu/linux-azure, ubuntu/linux-gcp, ubuntu/linux-azure-fde, ubuntu/linux-gke, ubuntu/linux-hwe-edge, and ubuntu/linux-gkeop.
What runtime conditions are involved in triggering the issue?
A PMU must use the perf_sched_cb_inc() and perf_sched_cb_dec() callback interface, and a perf event overflow path must cause pmu->stop() to remove an entry from sched_cb_list while that list is being traversed. The described scenario occurs after PERF_EVENT_IOC_REFRESH is invoked and the event's event_limit reaches zero.