CVE-2026-93045: bpf: Reject arena frees below the arena base
In the Linux kernel, the following vulnerability has been resolved:
bpf: Reject arena frees below the arena base
bpfarenafreepages() 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, fulluaddr falls below uservmstart. 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.
Event History
Frequently Asked Questions
Which inputs can trigger the invalid free-tree offset?
A scalar arena address whose low 32-bit value is below the low 32 bits of the arena base can cause the reconstructed user address to fall below user_vm_start. Upper-end clipping can then produce an out-of-range free-tree offset.
What can happen after the malformed free is accepted?
A later allocation can reuse the out-of-range offset and return an address below the arena mapping.
What can be done if the fix is not yet available?
Do not allow scalar arena free addresses whose low 32 bits are below those of the arena base. The resolved behavior is to reject these frees before calculating the clipped range.