CVE-2026-98075 bpf: reject BPF_PSEUDO_FUNC reference to the main program
A local attacker can trigger memory corruption in the Linux kernel by loading a BPF program that references the main function, potentially leading to code execution or privilege escalation.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-98075?
CVE-2026-98075 is a memory corruption vulnerability in Linux, published on 25 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
bpf: reject BPF_PSEUDO_FUNC reference to the main program
fixups.c:jit_subprogs() rewrites BPF_PSEUDO_FUNC loads to contain real function addresses. This function is invoked from bpf_jit_subprogs() only when env->subprog_cnt > 1. Meaning that for any program like below:
int main(void *ctx) { void *ptr = main; ... bpf_timer_set_callback(..., ptr); ... }
The 'ptr' won't be ever converted to contain an address. In combination with e.g. bpf_timer_set_callback() this would lead to a function call at a bogus address.
Instead of complicating the implementation, just assume that no useful program needs main to be a sync or async callback and reject BPF_PSEUDO_FUNC loads for the main subprogram.
Which versions are affected by CVE-2026-98075?
How do I fix CVE-2026-98075?
Apply the vendor's patch.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2026-98075 being exploited?
There is no known exploitation of CVE-2026-98075 in the wild and no public exploit code.
Sources
Also known as AZL-104372, BELL-CVE-2026-98075, DEBIAN-CVE-2026-98075, GHSA-fx7f-ghjh-g2gw, UBUNTU-CVE-2026-98075.