GPU VulnDB

Database/Kernel, userspace & hypervisor

perf tools: out-of-bounds heap read parsing a crafted perf.data CPU index

CVE-2026-80670Kernel, userspace & hypervisorcurated

Impact

machine__resolve() indexes env->cpu with a CPU number taken straight from a perf.data sample, checking only that it is non-negative and that the array exists, never that it is below env->nr_cpus_avail. A crafted perf.data therefore produces an out-of-bounds heap read, and values such as 65536 truncate to 0 on the cast to int16_t and silently return CPU 0's topology instead. This matters on a GPU fleet only in one flow: an operator or support engineer running perf report or perf script over a profile handed to them by a tenant or pulled from a shared scratch filesystem. It is a read in an unprivileged userspace tool, not a kernel-side flaw - the realistic outcome is a crash or leaked heap bytes in the analysis process, and mis-attributed topology in the resulting profile.

Who can reach it

Anyone who can hand an operator a perf.data file, or write one where an operator will later analyse it. Requires the victim to run the perf tooling on that file; no privilege is gained on the profiled machine itself.

What to do

Update the perf userspace package (linux-tools / perf-tools, per distribution) to a build carrying the fix that routes the lookup through perf_env__get_cpu_topology() and bounds-checks al->cpu before the int16_t cast; the stable commits are 5484b43a0ec8, b9e8406651dc and eb266a14c16a. This is a userspace tool, so no reboot or node drain is needed - the running kernel is unaffected. Until then, do not run perf report or perf script on perf.data files from untrusted tenants. No fixed version number is stated in the record.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.