CVE-2026-97960

Source
https://cve.org/CVERecord?id=CVE-2026-97960
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-97960.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-97960
Downstream
AZL (1)
BELL (1)
DEBIAN (1)
MGASA (2)
openSUSE (1)
UBUNTU (1)
Related
Published
2026-09-25T10:23:04Z
Modified
2026-10-28T02:30:48Z
Summary
perf/x86/intel: Prevent drain_pebs() reentry
Details

In the Linux kernel, the following vulnerability has been resolved:

perf/x86/intel: Prevent drain_pebs() reentry

The PEBS buffer is shared by all events on a CPU, so drain_pebs() must not be reentered. If so, one instance may observe stale buffer state and potentially access out-of-bound memory.

Most invocations happen in NMI context, which naturally prevents reentry. However, drain_pebs() is also reachable from process context via intel_pmu_drain_pebs_buffer().

In those paths, the PMU is often already disabled, but not guaranteed. For example, __intel_pmu_pebs_disable() only disables the target counter, so other active counters can still raise a PMI and interrupt an in-flight drain_pebs(). Here is an example,

__perf_addr_filters_adjust() perf_event_stop() __perf_event_stop() x86_pmu_stop() (event->pmu->stop) intel_pmu_disable_event() intel_pmu_pebs_disable() __intel_pmu_pebs_disable() intel_pmu_drain_large_pebs() intel_pmu_drain_pebs_buffer()

Introduce __intel_pmu_quiesce() and __intel_pmu_resume() helpers and use them in intel_pmu_drain_large_pebs() to disable the full PMU around the intel_pmu_drain_pebs_buffer() call, preventing reentry.

Also add a warning in intel_pmu_drain_pebs_buffer() when the full PMU is not disabled.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97960.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b752ea0c28e3f7f0aaaad6abf84f735eebc37a60
Fixed
9882068ed242fcd4743f53027e8c790e88dcafff
Fixed
999e482fdf89400cc1ae937680fc05096b4c915b
Fixed
a5fe19dd8b3ed5fad6e5e0f0c58c7245043ee4af
Fixed
c55599c0ec2aa020e41a0599c3044c56d8a2e7d9
Fixed
a56c03a397e2cd0c4cf8da96dcd6214f7d0e7d8c
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
6.3.7
Fixed
6.4
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
a9165207b2b07415eeb01b3ac8bb84976ec96984

Affected versions

v6.*
v6.3.10
v6.3.11
v6.3.12
v6.3.13
v6.3.7
v6.3.8
v6.3.9

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-97960.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.4.0
Fixed
6.6.160
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.114
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.53
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.2.7

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-97960.json"