CVE-2026-93112
High · 7.1CVSS
7.1
EPSS
0.2%
Published
Sep 17, 2026
CISA due date
—
Cloudanix analysis
A kernel bug lets certain local programs write into memory areas that should have been read-only, which can crash the system or change how the CPU scheduler works.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Tampering
- Component
- OS kernel
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The verifier incorrectly accepts const struct cpumask * pointers returned by read-only kfuncs as valid writable destinations for bpf_cpumask_populate(), which internally performs bitmap_copy() and violates intended ownership rules for mutating cpumask operations.
Why it matters to the business
Local processes with BPF privileges can corrupt kernel scheduler data structures, leading to system instability, denial of service, or unauthorized modification of CPU mask state without requiring elevated privileges beyond normal BPF access.
How an attack unfolds
An attacker loads a BPF program that obtains a read-only cpumask via a query kfunc such as scx_bpf_get_online_cpumask(), passes it to bpf_cpumask_populate(), and triggers bitmap_copy() writes into memory the verifier should have treated as immutable, bypassing the intended const protection.
How to fix it
Update the Linux kernel to a version containing the upstream fix that changes the destination parameter of bpf_cpumask_populate() to struct bpf_cpumask *.
How to confirm the fix worked
Confirm the kernel source contains the corrected function signature requiring struct bpf_cpumask * for the destination argument and that the verifier enforces ownership rules for mutating cpumask kfuncs.
Typical attack path
- Obtain a read-only cpumask pointer from a query kfunc
- Invoke bpf_cpumask_populate() on that pointer
- Trigger bitmap_copy() write into protected kernel memory
- Observe or induce scheduler or cpumask corruption effects
How to detect it
Review kernel audit logs and BPF verifier logs for programs attempting to pass const cpumask pointers to mutating kfuncs; look for crashes or scheduler anomalies following BPF program loads that reference cpumask operations.
What your security team should do
- Prioritize kernel upgrades on systems exposing BPF to untrusted local users
- Audit custom BPF programs that interact with cpumask kfuncs for use of read-only pointers with mutating operations
- Monitor for local privilege-escalation or stability issues on BPF-enabled workloads until patched
The record
In the Linux kernel, the following vulnerability has been resolved: bpf: Require a BPF cpumask for bpf_cpumask_populate() bpf_cpumask_populate() writes to its destination with bitmap_copy(), but the destination is typed as struct cpumask *. That allows the verifier to accept borrowed cpumask pointers returned by read-only kfuncs, such as scx_bpf_get_online_cpumask(), as a writable destination. Make the destination a struct bpf_cpumask * so populate follows the same ownership rule as the other mutating cpumask kfuncs. Query kfuncs continue to accept const struct cpumask * inputs.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|