ZeroHour

CVE-2026-80670

large

Out-of-bounds heap read in Linux kernel perf tool when parsing crafted perf.data files

CVSS 3.1
9.1 critical
EPSS
<1%p40
Published
()
Modified
AI analysis

The perf performance-analysis tool in the Linux kernel tree (tools/perf) fails to validate the CPU index from a perf.data sample against env->nr_cpus_avail in machine__resolve(), so a crafted file with an oversized CPU index triggers an out-of-bounds heap read when reading socket topology. A second issue lets CPU values of 65536 or more silently truncate to 0 when cast to int16_t, bypassing the accessor's bounds check and returning CPU 0's topology. An attacker who can get a user or automation to run perf (report/script/annotate) against an attacker-supplied perf.data file can cause disclosure of adjacent heap memory and a crash of the tool, which the 9.1 CVSS score (network vector, high confidentiality and availability impact) reflects. Anyone running the perf tool on Linux systems to analyze perf.data files of unknown or untrusted origin is affected; routine profiling of locally generated files is not an attack vector. Exploitation status: no public proof-of-concept, not in CISA KEV, and EPSS estimates only a 0.5% probability of exploitation in the next 30 days.

What to do: Update the perf / linux-tools package on affected hosts to a build containing the upstream fix (check your distribution's security advisory for the patched package version, as no fixed kernel version is given here). Until patched, avoid running perf report, annotate, or script on perf.data files received from untrusted sources or other machines. No known exploitation exists, so patching can follow normal maintenance cycles, prioritizing systems that regularly ingest third-party trace data.

Affected
Linux kernel perf tool (tools/perf, shipped by distributions as the 'perf' / linux-tools package)
Estimated exposure
large≈10^5–10^6 Linux systems with the perf tool installed (it ships in mainstream distro repositories and is common on developer, CI, and performance-tuning hosts) — perf is bundled in standard distribution tool packages (e.g., linux-tools/perf), so the installed base is plausibly in the hundreds of thousands to low millions of hosts, though only users analyzing untrusted perf.data files are…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: perf tools: Use perf_env__get_cpu_topology() in machine__resolve() machine__resolve() accesses env->cpu[al->cpu].socket_id after checking al->cpu >= 0 and env->cpu != NULL, but without validating al->cpu against env->nr_cpus_avail. Since al->cpu comes from the untrusted perf.data sample, a crafted file with a large CPU index causes an out-of-bounds heap read. Use perf_env__get_cpu_topology() which validates both NULL and bounds. Also bounds-check al->cpu before the cast to struct perf_cpu (int16_t): without this, values like 65536 silently truncate to 0, bypassing the accessor's internal check and returning CPU 0's topology.

Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

In the news

No ingested article mentions this CVE yet.