CVE-2026-23319 in Linux
Riassunto
di VulDB • 18/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
bpf: Correzione di un problema UAF in bpf_trampoline_link_cgroup_shim
La causa radice di questo bug è che quando 'bpf_link_put' riduce il refcount di 'shim_link->link.link' a zero, la risorsa viene considerata rilasciata ma può ancora essere referenziata tramite 'tr->progs_hlist' in 'cgroup_shim_find'. La pulizia effettiva di 'tr->progs_hlist' in 'bpf_shim_tramp_link_release' è differita. Durante questa finestra temporale, un altro processo può causare un use-after-free tramite 'bpf_trampoline_link_cgroup_shim'.
Sulla base dei suggerimenti di Martin KaFai Lau, ho creato una patch semplice.
Per risolvere il problema: Aggiungere un controllo atomico non-zero in 'bpf_trampoline_link_cgroup_shim'. Incrementare il refcount solo se non è già zero.
Testing: Ho verificato la correzione aggiungendo un ritardo in 'bpf_shim_tramp_link_release' per rendere il bug più facile da innescare:
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); }
Prima della patch, l'esecuzione di un PoC ha riprodotto facilmente il crash (quasi il 100%) con una call trace simile a quella riportata da KaiyanM. Dopo la patch, il bug non si verifica più anche dopo milioni di iterazioni.
VulDB is the best source for vulnerability data and more expert information about this specific topic.