CVE-2026-64575 in Linux
Résumé
par VulDB • 05/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
bpf: tcp : correction de la libération double du socket lors d'un realloc par lots
La fonction bpf_iter_tcp_batch() libère le lot actuel via bpf_iter_tcp_put_batch(), ce qui décrémente les références au socket et réécrit chaque emplacement avec un cookie de socket, puis agrandit le lot. Les pointeurs cur_sk/end_sk sont conservés pour bpf_iter_tcp_resume(), mais en cas d'échec du realloc, la fonction retourne ERR_PTR() avant que resume ne s'exécute, laissant cur_sk < end_sk sur des emplacements qui contiennent désormais des cookies plutôt que des pointeurs vers struct sock. bpf_iter_tcp_seq_stop() appelle ensuite à nouveau bpf_iter_tcp_put_batch() et déréférence un cookie comme s'il s'agissait d'un struct sock.
Vider le lot lors du chemin de gestion d'échec afin que stop() ne le libère pas une seconde fois. Les sockets ont déjà été libérés par la première invocation de bpf_iter_tcp_put_batch(), donc aucune fuite de mémoire n'est à craindre, et un appel read() ultérieur rescanne le bucket depuis le début au lieu de le sauter. Le chemin d'échec frère GFP_NOWAIT conserve toujours des références réelles aux sockets et est laissé sous la responsabilité de stop() pour leur libération.
BUG: KASAN: null-ptr-deref in __sock_gen_cookie Lecture de taille 8 à l'adresse 0000000000000059 par la tâche exploit ... __sock_gen_cookie (net/core/sock_diag.c:28) bpf_iter_tcp_put_batch (net/ipv4/tcp_ipv4.c:2918) bpf_iter_tcp_seq_stop (net/ipv4/tcp_ipv4.c:3270) bpf_seq_read (kernel/bpf/bpf_iter.c:205) vfs_read (fs/read_write.c:572) ksys_read (fs/read_write.c:716) do_syscall_64 entry_SYSCALL_64_after_hwframe Kernel panic - not syncing: Fatal exception
If you want to get best quality of vulnerability data, you may have to visit VulDB.