CVE-2026-23319Linux内核中的BPF子系统存在一个释放后重用(UAF)漏洞。该漏洞发生在`bpf_trampoline_link_cgroup_shim`函数中,原因是当引用计数归零时,资源被释放但未立即清理,导致竞态条件。攻击者可利用此漏洞导致系统崩溃或潜在的权限提升。
该漏洞的根本原因在于BPF子系统中的引用计数管理存在竞态条件。当`bpf_link_put`将`shim_link->link.link`的引用计数减至零时,资源被视为释放,但`tr->progs_hlist`的实际清理在`bpf_shim_tramp_link_release`中被延迟。在这个时间窗口内,另一个进程可以通过`cgroup_shim_find`引用已被释放的内存,触发Use-After-Free漏洞。攻击者利用此漏洞可导致内核崩溃或执行任意代码。修复方案是在`bpf_trampoline_link_cgroup_shim`中增加原子非零检查,确保仅在引用计数非零时才进行递增操作。