In the Linux kernel, the following vulnerability has been resolved:
perf/x86: Fix NULL event access and potential PEBS record loss
When intel_pmu_drain_pebs_icl() is called to drain PEBS records, the perf_event_overflow() could be called to process the last PEBS record.
While perf_event_overflow() could trigger the interrupt throttle and stop all events of the group, like what the below call-chain shows.
perf_event_overflow() -> __perf_event_overflow() ->__perf_event_account_interrupt() -> perf_event_throttle_group() -> perf_event_throttle() -> event->pmu->stop() -> x86_pmu_stop()
The side effect of stopping the events is that all corresponding event pointers in cpuc->events[] array are cleared to NULL.
Assume there are two PEBS events (event a and event b) in a group. When intel_pmu_drain_pebs_icl() calls perf_event_overflow() to process the last PEBS record of PEBS event a, interrupt throttle is triggered and all pointers of event a and event b are cleared to NULL. Then intel_pmu_drain_pebs_icl() tries to process the last PEBS record of event b and encounters NULL pointer access.
To avoid this issue, move cpuc->events[] clearing from x86_pmu_stop() to x86_pmu_del(). It's safe since cpuc->active_mask or cpuc->pebs_enabled is always checked before access the event pointer from cpuc->events[].
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Ubuntu | — | Upgrade linux-image-realtime-hwe-24.04Upgrade linux-image-oem-24.04bUpgrade linux-image-genericUpgrade linux-image-virtualUpgrade linux-image-6.17.0-1009-oracleUpgrade linux-image-azureUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-6.17.0-1009-gcpUpgrade linux-image-azure-6.17Upgrade linux-image-6.17.0-19-genericUpgrade linux-image-virtual-6.17Upgrade linux-image-aws-64kUpgrade linux-image-generic-6.17Upgrade linux-image-oem-24.04Upgrade linux-image-6.17.0-1017-oemUpgrade linux-image-aws-6.17Upgrade linux-image-gcp-64k-6.17Upgrade linux-image-generic-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-awsUpgrade linux-image-oem-24.04cUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-6.17.0-1008-realtimeUpgrade linux-image-6.17.0-1009-awsUpgrade linux-image-aws-64k-6.17Upgrade linux-image-realtime-6.17Upgrade linux-image-6.17.0-1009-oracle-64kUpgrade linux-image-oracle-64kUpgrade linux-image-oem-24.04dUpgrade linux-image-gcp-6.17Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gcp-64kUpgrade linux-image-6.17.0-19-generic-64kUpgrade linux-image-oracle-6.17Upgrade linux-image-6.17.0-1010-azureUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-6.17.0-1009-gcp-64kUpgrade linux-image-raspiUpgrade linux-image-oem-6.17Upgrade linux-image-6.17.0-1010-raspiUpgrade linux-image-realtimeUpgrade linux-image-6.17.0-1009-aws-64kUpgrade linux-image-raspi-6.17Upgrade linux-image-generic-64k-6.17 | Mar 17, 2026 | Dec 24, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub