GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel BPF offload: dev-bound program freed while offload->prog still points at it

CVSS 7.8CVE-2026-53094Kernel, userspace & hypervisorcurated

Impact

A dev-bound-only XDP program (BPF_F_XDP_DEV_BOUND_ONLY) JIT-compiled with constant blinding enabled gets cloned, and bpf_jit_prog_release_other() updates aux->prog to the clone but not offload->prog. The original is freed, leaving offload->prog dangling. When the network namespace is later torn down, cleanup_net() reaches __bpf_prog_offload_destroy() on the freed program and faults - the commit message includes the page-fault trace and a reliable reproducer using the xdp_metadata selftest. The preconditions are narrow and specific: net.core.bpf_jit_harden must be 2 or higher, and the program must be dev-bound-only, which is the unusual combination of a hardening setting some operators do enable and an XDP offload feature most do not use. Check whether bpf_jit_harden is set to 2 on your nodes before spending a window on this; if it is 0 or 1 you are not exposed.

Who can reach it

Local. Requires loading a dev-bound-only XDP program on a host with bpf_jit_harden >= 2, so CAP_BPF/CAP_NET_ADMIN, plus a netns teardown to trigger the fault. Not reachable from the network or from a tenant without those capabilities.

What to do

Patch to a fixed stable kernel - the fix keeps offload->prog in sync alongside aux->prog - and reboot. A zero-reboot mitigation exists and is worth knowing: setting net.core.bpf_jit_harden below 2 removes the constant-blinding clone that creates the stale pointer, though it also gives up that hardening. Decide which you would rather hold until the next kernel window.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.