perf sched: Fix register_pid() overflow, strcpy, and BUG_ON
Summary
| CVE | CVE-2026-80671 |
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-08-28 08:16:52 UTC |
| Updated | 2026-08-28 08:16:52 UTC |
| 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. |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|
| CNA |
Linux |
Linux |
affected ec156764d424dd67283c2cd5e9f6f1b8388364ac 652cea73b7b7b7c622a2be670e44e3c499c6d49f git |
Not specified |
| CNA |
Linux |
Linux |
affected ec156764d424dd67283c2cd5e9f6f1b8388364ac 5ea1dcc9418c4e06ce29ed5170596f497ba86872 git |
Not specified |
| CNA |
Linux |
Linux |
affected ec156764d424dd67283c2cd5e9f6f1b8388364ac 5949d339f5ec98752d56dcd4e36f619a59d513a5 git |
Not specified |
| CNA |
Linux |
Linux |
affected 2.6.32 |
Not specified |
| CNA |
Linux |
Linux |
unaffected 2.6.32 semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 6.18.40 6.18.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.1.5 7.1.* semver |
Not specified |
| CNA |
Linux |
Linux |
unaffected 7.2 * original_commit_for_fix |
Not specified |
References
| Reference | Source | Link | Tags |
|---|
| git.kernel.org/stable/c/5ea1dcc9418c4e06ce29ed5170596f497ba86872 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/5949d339f5ec98752d56dcd4e36f619a59d513a5 |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| git.kernel.org/stable/c/652cea73b7b7b7c622a2be670e44e3c499c6d49f |
416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
git.kernel.org |
|
| CVE Program record |
CVE.ORG |
www.cve.org |
canonical |
| NVD vulnerability detail |
NVD |
nvd.nist.gov |
canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.