CVE-2026-93045
High · 7.8CVSS
7.8
EPSS
0.1%
Published
Sep 17, 2026
CISA due date
—
Cloudanix analysis
A bug in how the Linux kernel handles memory cleanup for certain low-level programs could let someone who already has access on the machine take over the whole system.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw in bpf_arena_free_pages() accepts scalar arena addresses below the arena base; after masking and reconstruction, the resulting full_uaddr falls below user_vm_start, the upper-end clipping produces an out-of-range free-tree offset, and subsequent allocations can return addresses below the arena mapping, enabling memory corruption.
Why it matters to the business
Local attackers on Linux systems can corrupt kernel memory structures, potentially leading to privilege escalation, system instability, or denial of service with moderate operational risk given low exploit maturity and prevalence.
How an attack unfolds
An attacker with local access loads a BPF program that invokes bpf_arena_free_pages using a crafted scalar value below the arena base; the kernel computes an invalid free-tree offset that can later be reused during allocation to return a mapping below the intended arena region for further corruption.
How to fix it
Apply the upstream kernel patch that adds an explicit check rejecting arena frees whose scalar value is below the low 32 bits of the arena base before any clipping or offset calculation occurs.
How to confirm the fix worked
Inspect the bpf_arena_free_pages implementation in the running kernel source or binary to confirm presence of the early rejection of addresses below the arena base; test with crafted BPF programs that previously triggered the out-of-range condition.
Typical attack path
- Obtain local user access on a Linux host
- Load a malicious BPF program via the bpf syscall
- Invoke bpf_arena_free_pages with an address below the arena base
- Trigger subsequent allocations that reuse the corrupted free-tree offset
- Leverage the resulting out-of-range mapping for memory corruption
How to detect it
Review kernel audit logs and BPF event traces for invocations of arena free helpers with anomalous scalar values; correlate with subsequent unexpected allocation patterns or memory faults below arena mappings.
What your security team should do
- Prioritize kernel updates containing the arena-free rejection logic
- Restrict unprivileged BPF loading via sysctl or LSM policies
- Monitor kernel logs for unusual arena allocation or free patterns
- Audit custom BPF programs for direct use of arena free helpers
The record
In the Linux kernel, the following vulnerability has been resolved: bpf: Reject arena frees below the arena base bpf_arena_free_pages() accepts scalar arena addresses. The runtime masks the address to the low 32 bits and reconstructs a full user address from the arena base before returning the range to the arena free tree. When the scalar value is below the low 32 bits of the arena base, full_uaddr falls below user_vm_start. The existing upper-end clipping then turns this into an out-of-range free-tree offset. A later allocation can reuse that offset and return an address below the arena mapping. Reject such frees before computing the clipped range.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|