CVE-2026-45837: bpf: Fix use-after-free in arena_vm_close on fork
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix use-after-free in arenavmclose on fork
arenavmopen() only bumps vml->mmapcount but never registers the child VMA in arena->vmalist. The vml->vma always points at the parent VMA, so after parent munmap the pointer dangles. If the child then calls bpfarenafreepages(), zappages() reads the stale vml->vma triggering use-after-free.
Fix this by preventing the arena VMA from being inherited across fork with VMDONTCOPY, and preventing VMA splits via the maysplit callback.
Also reject mremap with a .mremap callback returning -EINVAL. A same-size mremap(MREMAPFIXED) on the full arena VMA reaches copyvma() through the following path:
checkprepvma() - returns 0 early: newlen == oldlen skips VMDONTEXPAND check prepmovevma() - vmstart == oldaddr and vmend == oldaddr + oldlen so maysplit is never called movevma() copyvmaanddata() copyvma() vmareadup() - copies vmprivatedata (vml pointer) vmops->open() - bumps vml->mmapcount vmops->mremap() - returns -EINVAL, rollback unmaps new VMA
The refcount ensures the rollback's arenavmclose does not free the vml shared with the original VMA.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-45837?
The severity of CVE-2026-45837 is rated at risk level 51.
What type of vulnerability is CVE-2026-45837?
CVE-2026-45837 is categorized as a Use After Free vulnerability.
How does CVE-2026-45837 affect the Linux kernel?
CVE-2026-45837 affects the Linux kernel by causing a use-after-free condition in the arena_vm_close function during fork operations.
How do I fix CVE-2026-45837?
To fix CVE-2026-45837, you should apply the latest Linux kernel patches that address this use-after-free vulnerability.
In which Linux kernel versions is CVE-2026-45837 present?
The specific Linux kernel versions affected by CVE-2026-45837 can be determined by checking the security advisories related to the published date of May 27, 2026.