CVE-2026-23435
NULL Pointer Dereference in Linux Kernel perf Event Handling Causes Crash
Publication date: 2026-04-03
Last updated on: 2026-04-23
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | From 6.17.13 (inc) to 6.18 (exc) |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 7.0 |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | From 6.19.1 (inc) to 6.19.10 (exc) |
| linux | linux_kernel | From 6.18.2 (inc) to 6.18.20 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-476 | The product dereferences a pointer that it expects to be valid but is NULL. |
Attack-Flow Graph
AI Powered Q&A
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability manifests as a NULL pointer dereference in the Linux kernel's perf subsystem, specifically in the PMU NMI handler, which can cause a system crash.
Detection would involve monitoring for kernel crash logs or oops messages indicating a NULL pointer dereference at the function x86_perf_event_update, with call traces involving amd_pmu_v2_handle_irq and perf_event_nmi_handler.
Specifically, look for kernel messages similar to: 'BUG: kernel NULL pointer dereference, address: 0000000000000198' and call traces showing the faulting instruction 'cmpq $0x0, 0x198(%rdi)' with RDI=0.
Since this is a kernel-level issue related to AMD EPYC systems using perf events, commands to check kernel logs such as 'dmesg' or 'journalctl -k' can be used to detect such crashes.
Example commands to detect this issue include:
- dmesg | grep -i 'NULL pointer dereference'
- journalctl -k | grep -i 'x86_perf_event_update'
- journalctl -k | grep -i 'amd_pmu_v2_handle_irq'
- Check for system crashes or reboots correlated with perf event activity on AMD EPYC systems.
Additionally, analyzing vmcore dumps with debugging tools like drgn to inspect cpuc->active_mask and cpuc->events[] arrays may help confirm the presence of the mismatch described in the vulnerability.
Can you explain this vulnerability to me?
This vulnerability is a NULL pointer dereference in the Linux kernel's performance monitoring unit (PMU) code for x86 processors, specifically affecting AMD EPYC systems.
The issue arises because the kernel code moved the assignment of event pointers (cpuc->events[]) to a later step in the x86_pmu_enable() function, after a check that can cause some events to be skipped. This means that when the PMU unthrottle path calls pmu->start() without going through x86_pmu_enable(), the events[] array is not properly populated.
As a result, when a performance monitoring counter (PMC) overflow triggers a non-maskable interrupt (NMI), the handler tries to access an event pointer that is NULL, causing the kernel to crash with a NULL pointer dereference.
The root cause was a code change that moved the event pointer setup out of x86_pmu_start() and into a later step of x86_pmu_enable(), breaking the unthrottle path that calls pmu->start() directly.
The fix involved moving the assignment of the event pointer back to before the check that skips events, ensuring that even events not immediately started have valid pointers.
How can this vulnerability impact me? :
This vulnerability can cause a production AMD EPYC system running the affected Linux kernel to crash unexpectedly due to a kernel NULL pointer dereference.
Such crashes can lead to system downtime, loss of data in memory, and interruption of critical services.
Because the crash occurs in the PMU NMI handler during performance monitoring, it may be triggered by workloads that heavily use performance counters or profiling tools.
What immediate steps should I take to mitigate this vulnerability?
The vulnerability is caused by a NULL pointer dereference in the Linux kernel's perf subsystem related to PMU event handling on x86 systems, specifically AMD EPYC.
To mitigate this vulnerability immediately, you should update your Linux kernel to a version that includes the fix which moves the cpuc->events[hwc->idx] assignment in x86_pmu_enable() to before the PERF_HES_ARCH check. This ensures that the events[] array is properly populated and prevents the NULL pointer dereference.