CVE-2026-31528 Overview
CVE-2026-31528 is a vulnerability in the Linux kernel's performance monitoring (perf) subsystem that results in out-of-bounds memory access. The issue occurs in the x86_pmu_del() function when group_sched_in() fails and attempts to roll back operations. The root cause stems from incorrect PMU (Performance Monitoring Unit) context handling, where the wrong PMU's transaction handlers are used when a group leader is a software event.
Critical Impact
Local attackers with access to the perf subsystem could potentially trigger out-of-bounds memory access, leading to system instability, information disclosure, or privilege escalation in affected Linux kernel versions.
Affected Products
- Linux Kernel (versions with vulnerable perf subsystem implementation)
- Systems using x86 PMU functionality
- Environments utilizing perf event groups with mixed software/hardware events
Discovery Timeline
- 2026-04-22 - CVE CVE-2026-31528 published to NVD
- 2026-04-23 - Last updated in NVD database
Technical Details for CVE-2026-31528
Vulnerability Analysis
The vulnerability exists within the Linux kernel's perf subsystem, specifically in how PMU context is handled for event groups. The issue manifests when group_sched_in() fails and needs to perform a rollback operation. During this rollback, the x86_pmu_del() function performs an out-of-bounds memory access due to incorrect PMU context references.
The problem arises because when a group leader is a software event, the transaction handlers from the wrong PMU are utilized. While the move_group case in perf_event_open() and group_sched_in() correctly use pmu_ctx->pmu, the inherit code path uses event->pmu to clone events. This effectively undoes the move_group case for all inherited contexts, causing the mismatch that leads to the out-of-bounds access.
Root Cause
The root cause is inconsistent PMU reference handling across different code paths in the perf subsystem. The inherit functionality uses event->pmu to clone events rather than pmu_ctx->pmu, which creates a discrepancy with other code paths like move_group. This inconsistency means that when events are inherited, they may end up referencing a different PMU context than expected.
Additionally, __perf_event_read() had the same issue for the group case, where it should equally use pmu_ctx->pmu for consistency. The fix ensures all inherited counters end up in the same PMU context by making the inherit code path use pmu_ctx->pmu, aligning it with the behavior of move_group and group_sched_in().
Attack Vector
The attack vector for this vulnerability requires local access to the system with permissions to interact with the perf subsystem. An attacker would need to:
- Create a perf event group with a software event as the group leader
- Trigger the group_sched_in() function in a way that causes it to fail
- Force the rollback path to be executed, which invokes x86_pmu_del() with incorrect PMU context
- Exploit the out-of-bounds memory access for information disclosure or code execution
The exploitation requires careful manipulation of perf event groups and timing to trigger the failure condition during group scheduling. See the Linux kernel commit 35f7914 for technical implementation details of the vulnerability and fix.
Detection Methods for CVE-2026-31528
Indicators of Compromise
- Kernel panic or oops messages referencing x86_pmu_del() or related perf subsystem functions
- Unexpected memory access violations in kernel logs related to PMU operations
- Suspicious perf event activity involving mixed software/hardware event groups
- System instability when using perf monitoring tools or profilers
Detection Strategies
- Monitor kernel logs for memory access violations in the perf subsystem, particularly in x86_pmu_del(), group_sched_in(), or __perf_event_read() functions
- Implement kernel tracing to detect anomalous perf event group creation patterns with software event leaders
- Deploy host-based intrusion detection to monitor for exploitation attempts targeting the perf subsystem
- Use SentinelOne's kernel monitoring capabilities to detect abnormal memory access patterns in kernel space
Monitoring Recommendations
- Enable kernel auditing for perf_event_open syscalls to track event group creation
- Monitor for unusual process behavior following perf event operations that may indicate successful exploitation
- Implement alerting on kernel memory corruption indicators in system logs
- Review perf subsystem usage patterns for anomalous activity, especially in multi-user environments
How to Mitigate CVE-2026-31528
Immediate Actions Required
- Update the Linux kernel to a patched version that includes the fix for this vulnerability
- If immediate patching is not possible, consider restricting access to the perf subsystem using kernel.perf_event_paranoid sysctl
- Review and limit which users have CAP_SYS_ADMIN or CAP_PERFMON capabilities
- Monitor systems for signs of exploitation attempts while preparing for patching
Patch Information
The Linux kernel developers have released fixes for this vulnerability across multiple kernel branches. The patches ensure consistent use of pmu_ctx->pmu for event groups in the inherit path and __perf_event_read() function. Apply the appropriate patch for your kernel version:
- Linux Kernel Commit 35f7914
- Linux Kernel Commit 3a696e8
- Linux Kernel Commit 4b9ce67
- Linux Kernel Commit 4c75944
- Linux Kernel Commit 656f35b
Workarounds
- Restrict perf event access by setting kernel.perf_event_paranoid=2 or higher to limit unprivileged access
- Remove the CAP_PERFMON capability from non-essential users and processes
- Disable perf event functionality entirely if not required for system operations
- Implement SELinux or AppArmor policies to restrict access to perf subsystem interfaces
# Configuration example
# Restrict perf_event_open to root only
echo "kernel.perf_event_paranoid=2" >> /etc/sysctl.conf
sysctl -p
# Alternatively, completely disable for non-root users
echo "kernel.perf_event_paranoid=3" >> /etc/sysctl.conf
sysctl -p
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


