CVE-2025-68375
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
24/12/2025
Última modificación:
29/12/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
perf/x86: Fix NULL event access and potential PEBS record loss<br />
<br />
When intel_pmu_drain_pebs_icl() is called to drain PEBS records, the<br />
perf_event_overflow() could be called to process the last PEBS record.<br />
<br />
While perf_event_overflow() could trigger the interrupt throttle and<br />
stop all events of the group, like what the below call-chain shows.<br />
<br />
perf_event_overflow()<br />
-> __perf_event_overflow()<br />
->__perf_event_account_interrupt()<br />
-> perf_event_throttle_group()<br />
-> perf_event_throttle()<br />
-> event->pmu->stop()<br />
-> x86_pmu_stop()<br />
<br />
The side effect of stopping the events is that all corresponding event<br />
pointers in cpuc->events[] array are cleared to NULL.<br />
<br />
Assume there are two PEBS events (event a and event b) in a group. When<br />
intel_pmu_drain_pebs_icl() calls perf_event_overflow() to process the<br />
last PEBS record of PEBS event a, interrupt throttle is triggered and<br />
all pointers of event a and event b are cleared to NULL. Then<br />
intel_pmu_drain_pebs_icl() tries to process the last PEBS record of<br />
event b and encounters NULL pointer access.<br />
<br />
To avoid this issue, move cpuc->events[] clearing from x86_pmu_stop()<br />
to x86_pmu_del(). It&#39;s safe since cpuc->active_mask or<br />
cpuc->pebs_enabled is always checked before access the event pointer<br />
from cpuc->events[].



