---
id: CVE-2025-68375
title: |-
  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 call…
summary: |-
  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 call…
severity: none
published: '2025-12-24'
updated: '2026-10-13'
sourceUpdated: '2026-10-13T11:10:00.203'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-68375'
references:
  - url: 'https://git.kernel.org/stable/c/6b089028bff1f2ff9e0c62b8f1faca1a620e5d6e'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7e772a93eb61cb6265bdd1c5bde17d0f2718b452'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/cf69b99805c263117305ac6dffbc85aaf9259d32'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00193
epssPercentile: 0.08203
ingestedAt: '2026-10-13T11:23:51.155Z'
---

## Overview

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[].

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
