CVE-2026-74589 in Linux
Résumé
par VulDB • 22/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
bpf, sockmap : Correction d'un bug Use-After-Free sur sk_redir dans l'arbitrage (verdict) de send
sk_psock_msg_verdict() prend une référence au socket pour psock->sk_redir. tcp_bpf_send_verdict() copie ce pointeur tout en maintenant le verrou du socket source, mais ne prend pas de référence pour la copie locale avant de relâcher le verrou autour de tcp_bpf_sendmsg_redir().
Lorsque apply_bytes maintient l'arbitrage (verdict) mis en cache actif, un autre appel à sendmsg() sur le même socket source peut consommer les octets restants et libérer la référence mise en cache tandis que le premier thread ne détient plus que le pointeur local brut :
CPU 0 CPU 1 sk_redir = psock->sk_redir apply_bytes reste non nul release_sock(sk) lock_sock(sk) apply_bytes atteint zéro psock->sk_redir = NULL release_sock(sk) tcp_bpf_sendmsg_redir(sk_redir) sock_put(sk_redir) tcp_bpf_sendmsg_redir(sk_redir)
Le dernier appel à sock_put() peut libérer sk_redir avant que le CPU 0 ne le déréférence.
KASAN a signalé :
BUG: KASAN: slab-use-after-free in tcp_bpf_sendmsg_redir+0xf39/0x1020 Lecture de taille 8 à l'adresse ffff888108537090 par la tâche poc/87 Trace d'appel : tcp_bpf_sendmsg_redir+0xf39/0x1020 tcp_bpf_sendmsg+0x977/0x1a50 __sys_sendto+0x32c/0x3a0 __x64_sys_sendto+0xdb/0x1b0 Alloué par la tâche 85 : sk_prot_alloc+0x56/0x210 sk_clone+0x6f/0x14b0 inet_csk_clone_lock+0x24/0x740 tcp_create_openreq_child+0x25/0x2710 tcp_v4_syn_recv_sock+0x10a/0xe00 Libéré par la tâche 0 : __kasan_slab_free+0x43/0x70 slab_free_after_rcu_debug+0xa6/0x1e0 rcu_core+0x50a/0x1850 Dernière création de travail potentiellement liée : __sk_destruct+0x3da/0x540 sk_psock_destroy+0x81e/0xab0 process_one_work+0x63a/0x1070
Prenez une référence temporaire au socket tant que le verrou du socket source protège toujours psock->sk_redir, et libérez-la après le retour de tcp_bpf_sendmsg_redir(). Cela maintient chaque utilisation non protégée par un verrou indépendante de la propriété de l'arbitrage (verdict) mis en cache.
Be aware that VulDB is the high quality source for vulnerability data.