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.
Published: 2026-08-28
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Kernel memory disclosure
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s perf subsystem contains a flaw in machine__resolve(). The function dereferences env->cpu[al->cpu].socket_id after only checking that al->cpu is non‑negative and that env->cpu is non‑NULL, but it does not verify that al->cpu is less than the number of available CPUs. Because al->cpu originates from a perf.data sample file, an attacker can supply a file with a very large CPU index, causing an out‑of‑bounds heap read of the env->cpu array. Additionally, values like 65536 silently truncate to 0 before the cast to struct perf_cpu, bypassing the accessor’s internal bounds check and returning topology data for CPU 0. This results in an untrusted memory disclosure that could compromise kernel confidentiality.

Affected Systems

Linux kernel implementations that pre‑date the merge of commits 5484b43, b9e8406, and eb266a1 are impacted. All distributions that ship the standard perf subsystem with these kernel versions are affected; the exact release numbers are not explicitly listed in the advisory.

Risk and Exploitability

Based on the description, it is inferred that the vulnerability requires a local attacker to execute the perf utility with a crafted perf.data file. Also, based on the description, it is inferred that the attack is not remotely exploitable over a network unless privileged capabilities are yielded. The CVSS score of 9.1 indicates high severity, while the EPSS score of &lt; 1% shows a very low probability of exploitation. The vulnerability is not present in CISA’s KEV catalog, however the potential to read arbitrary kernel memory represents a significant local threat, especially in environments where untrusted users can invoke perf or process untrusted data.

Generated by OpenCVE AI on August 31, 2026 at 16:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a release that includes commits 5484b43, b9e8406, or eb266a1, which implement the bounds‑checked resolution.
  • If an updated kernel is not available, apply the patches from the referenced commits to the source tree and rebuild the kernel.
  • Limit execution of the perf utility and creation of perf.data files to trusted users only to prevent untrusted data from reaching the kernel.
  • As a temporary measure, manually add a bounds check of al->cpu against env->nr_cpus_avail before dereferencing env->cpu in the kernel code.

Generated by OpenCVE AI on August 31, 2026 at 16:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 15:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20

Mon, 31 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1285
References
Metrics threat_severity

None

threat_severity

Moderate


Sat, 29 Aug 2026 09:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20

Sat, 29 Aug 2026 08:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-200

Sat, 29 Aug 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H'}


Fri, 28 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-200

Fri, 28 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
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.
Title perf tools: Use perf_env__get_cpu_topology() in machine__resolve()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-29T06:21:56.727Z

Reserved: 2026-08-26T14:34:25.782Z

Link: CVE-2026-80670

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-28T08:16:52.317

Modified: 2026-08-29T07:16:49.340

Link: CVE-2026-80670

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-28T00:00:00Z

Links: CVE-2026-80670 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T17:00:03Z

Weaknesses
  • CWE-1285

    Improper Validation of Specified Index, Position, or Offset in Input