CVE-2026-23319 in Linux
Résumé
par VulDB • 02/06/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
bpf : Correction d'un problème UAF (Use-After-Free) dans bpf_trampoline_link_cgroup_shim
La cause racine de ce bug est que lorsque 'bpf_link_put' réduit le compteur de référence ('refcount') de 'shim_link->link.link' à zéro, la ressource est considérée comme libérée mais peut toujours être référencée via 'tr->progs_hlist' dans 'cgroup_shim_find'. Le nettoyage effectif de 'tr->progs_hlist' dans 'bpf_shim_tramp_link_release' est différé. Pendant cette fenêtre d'exposition, un autre processus peut provoquer une utilisation après libération (use-after-free) via 'bpf_trampoline_link_cgroup_shim'.
Sur la base des suggestions de Martin KaFai Lau, j'ai créé un correctif simple.
Pour corriger cela : Ajouter une vérification atomique non nulle dans 'bpf_trampoline_link_cgroup_shim'. N'incrémenter le compteur de référence que s'il n'est pas déjà égal à zéro.
Tests : J'ai vérifié la correction en ajoutant un délai dans 'bpf_shim_tramp_link_release' afin de faciliter la reproduction du bug :
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); }
Avant le correctif, l'exécution d'un PoC reproduisait facilement le plantage (presque 100 %) avec une trace d'appel similaire au rapport de KaiyanM. Après le correctif, le bug ne se produit plus même après des millions d'itérations.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.