CVE-2025-38055
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
18/06/2025
Last modified:
14/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
perf/x86/intel: Fix segfault with PEBS-via-PT with sample_freq<br />
<br />
Currently, using PEBS-via-PT with a sample frequency instead of a sample<br />
period, causes a segfault. For example:<br />
<br />
BUG: kernel NULL pointer dereference, address: 0000000000000195<br />
<br />
? __die_body.cold+0x19/0x27<br />
? page_fault_oops+0xca/0x290<br />
? exc_page_fault+0x7e/0x1b0<br />
? asm_exc_page_fault+0x26/0x30<br />
? intel_pmu_pebs_event_update_no_drain+0x40/0x60<br />
? intel_pmu_pebs_event_update_no_drain+0x32/0x60<br />
intel_pmu_drain_pebs_icl+0x333/0x350<br />
handle_pmi_common+0x272/0x3c0<br />
intel_pmu_handle_irq+0x10a/0x2e0<br />
perf_event_nmi_handler+0x2a/0x50<br />
<br />
That happens because intel_pmu_pebs_event_update_no_drain() assumes all the<br />
pebs_enabled bits represent counter indexes, which is not always the case.<br />
In this particular case, bits 60 and 61 are set for PEBS-via-PT purposes.<br />
<br />
The behaviour of PEBS-via-PT with sample frequency is questionable because<br />
although a PMI is generated (PEBS_PMI_AFTER_EACH_RECORD), the period is not<br />
adjusted anyway.<br />
<br />
Putting that aside, fix intel_pmu_pebs_event_update_no_drain() by passing<br />
the mask of counter bits instead of &#39;size&#39;. Note, prior to the Fixes<br />
commit, &#39;size&#39; would be limited to the maximum counter index, so the issue<br />
was not hit.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.10.5 (including) | 6.12.31 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.14.9 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



