CVE-2026-23319 bpf: Fix a UAF issue in bpf_trampoline_link_cgroup_shim
A use-after-free in the Linux kernel's BPF subsystem allows attackers to execute arbitrary code or escalate privileges via race conditions.
- 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-23319?
CVE-2026-23319 is a high-severity use after free vulnerability in Linux kernel, published on 25 Mar 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: Fix a UAF issue in bpf_trampoline_link_cgroup_shim
The root cause of this bug is that when 'bpf_link_put' reduces the refcount of 'shim_link->link.link' to zero, the resource is considered released but may still be referenced via 'tr->progs_hlist' in 'cgroup_shim_find'. The actual cleanup of 'tr->progs_hlist' in 'bpf_shim_tramp_link_release' is deferred. During this window, another process can cause a use-after-free via 'bpf_trampoline_link_cgroup_shim'.
Based on Martin KaFai Lau's suggestions, I have created a simple patch.
To fix this: Add an atomic non-zero check in 'bpf_trampoline_link_cgroup_shim'. Only increment the refcount if it is not already zero.
Testing: I verified the fix by adding a delay in 'bpf_shim_tramp_link_release' to make the bug easier to trigger:
static void bpf_shim_tramp_link_release(struct bpf_link *link) { /* ... */ if (!shim_link->trampoline) return;
+ msleep(100); WARN_ON_ONCE(bpf_trampoline_unlink_prog(&shim_link->link, shim_link->trampoline, NULL)); bpf_trampoline_put(shim_link->trampoline); }
Before the patch, running a PoC easily reproduced the crash(almost 100%) with a call trace similar to KaiyanM's report. After the patch, the bug no longer occurs even after millions of iterations.
Weakness: CWE-416
Which versions are affected by CVE-2026-23319?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2026-23319?
Apply the vendor's patch.
Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.
Is CVE-2026-23319 being exploited?
There is no known exploitation of CVE-2026-23319 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as AZL-80691, BELL-CVE-2026-23319, DEBIAN-CVE-2026-23319, GHSA-65x4-mv56-gf8m, ROOT-OS-DEBIAN-12-CVE-2026-23319, ROOT-OS-DEBIAN-13-CVE-2026-23319 and 2 more.