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

perf sched: Fix register_pid() overflow, strcpy, and BUG_ON

register_pid() has several issues when processing untrusted perf.data:

1. Integer overflow: (pid + 1) * sizeof(struct task_desc *) can wrap
to a small value on 32-bit systems when pid is large (e.g.
0x40000000), causing realloc to return a tiny buffer followed by
out-of-bounds writes in the initialization loop.

2. Heap buffer overflow: strcpy(task->comm, comm) copies the
untrusted comm string into a fixed 20-byte COMM_LEN buffer with
no length check.

3. BUG_ON on allocation failure: perf.data is untrusted input, so
allocation failures should be handled gracefully rather than
killing the process.

4. Realloc of sched->tasks assigned directly back, leaking the old
pointer on failure; nr_tasks incremented before the realloc,
leaving corrupted state on failure.

Cap pid at PID_MAX_LIMIT (4194304, matching the kernel's maximum
on 64-bit), replace strcpy with strlcpy, guard against NULL comm,
replace BUG_ON with NULL returns using safe realloc patterns, and
add NULL checks in callers that dereference the result.
Published: 2026-08-28
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Kernel memory corruption enabling privilege escalation or denial of service
Action: Immediate patch
AI Analysis

Impact

The register_pid() routine in the Linux kernel’s perf scheduling subsystem processes untrusted perf.data files and exposes several critical defects. An integer overflow arises when computing the buffer size for task descriptors on 32‑bit systems, leading to a tiny reallocated buffer that is overwritten during initialization. A second flaw copies the task name into a fixed 20‑byte buffer via strcpy without bounds checking, creating a heap buffer overflow. Additionally, the code uses BUG_ON on allocation failures, causing kernel panics, and leaks the previous pointer on realloc failures, corrupting internal state. These defects can corrupt kernel memory and allow an attacker to inject code or crash the system, resulting in privilege escalation or denial of service.

Affected Systems

All Linux kernel builds that have not incorporated the commit series in the referenced links (5949d339f5ec98752d56dcd4e36f619a59d513a5, 5ea1dcc9418c4e06ce29ed5170596f497ba86872, 652cea73b7b7b7c622a2be670e44e3c499c6d49f) are vulnerable. The kernel component affected is the perf scheduling subsystem; no specific patch level numbers are listed, so any pre‑patch kernel is at risk.

Risk and Exploitability

The CVSS score of 9.3 signals an extremely high severity. The EPSS score is less than 1%, indicating a very low probability of exploitation at this time. The vulnerability is not listed in CISA KEV, so there is no confirmation of active exploitation. The likely attack vector involves a local or remote attacker providing crafted perf.data files to the system or compromising the tools that generate such data. If exploited, an attacker could trigger out‑of‑bounds writes or kernel panics, leading to either denial of service or privilege escalation.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the kernel to a release that contains the recent commit series (5949d339f5ec98752d56dcd4e36f619a59d513a5, 5ea1dcc9418c4e06ce29ed5170596f497ba86872, and 652cea73b7b7b7c622a2be670e44e3c499c6d49f) to fix the register_pid() vulnerabilities.
  • If an immediate kernel upgrade is not possible, restrict untrusted perf.data input by disabling or limiting the perf scheduling subsystem, applying strict file permissions, or running the system in a mode that does not accept user‑supplied perf data.
  • Audit all code paths that copy task names into fixed‑size buffers; replace unsafe strcpy calls with bounds‑checked functions such as strlcpy, enforce PID value limits, and ensure integer multiplication is protected against overflow.

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, 14 Sep 2026 12:30:00 +0000


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

Type Values Removed Values Added
Weaknesses CWE-119
CWE-252
CWE-680
CWE-772

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

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

None

threat_severity

Moderate


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

Type Values Removed Values Added
Metrics cvssV3_1

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


Fri, 28 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-252
CWE-680
CWE-772

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

Type Values Removed Values Added
Weaknesses CWE-119
CWE-680

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

Type Values Removed Values Added
Weaknesses CWE-119
CWE-680

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 sched: Fix register_pid() overflow, strcpy, and BUG_ON register_pid() has several issues when processing untrusted perf.data: 1. Integer overflow: (pid + 1) * sizeof(struct task_desc *) can wrap to a small value on 32-bit systems when pid is large (e.g. 0x40000000), causing realloc to return a tiny buffer followed by out-of-bounds writes in the initialization loop. 2. Heap buffer overflow: strcpy(task->comm, comm) copies the untrusted comm string into a fixed 20-byte COMM_LEN buffer with no length check. 3. BUG_ON on allocation failure: perf.data is untrusted input, so allocation failures should be handled gracefully rather than killing the process. 4. Realloc of sched->tasks assigned directly back, leaking the old pointer on failure; nr_tasks incremented before the realloc, leaving corrupted state on failure. Cap pid at PID_MAX_LIMIT (4194304, matching the kernel's maximum on 64-bit), replace strcpy with strlcpy, guard against NULL comm, replace BUG_ON with NULL returns using safe realloc patterns, and add NULL checks in callers that dereference the result.
Title perf sched: Fix register_pid() overflow, strcpy, and BUG_ON
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-09-14T11:58:49.345Z

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

Link: CVE-2026-80671

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-09-14T13:18:48.167

Link: CVE-2026-80671

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-80671 - Bugzilla

cve-icon OpenCVE Enrichment

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

Weaknesses