CVE-2026-98925 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
bpf, sockmap: Correzione del doppio conteggio di copied_seq nella self-redirect
Quando un programma stream_verdict BPF reindirizza uno skb allo stesso socket (self-redirect con BPF_F_INGRESS), sk_psock_verdict_apply() chiama tcp_eat_skb(), che avanza il valore di tcp_sk->copied_seq. Tuttavia, lo skb viene successivamente consegnato alla coda ingress psock del socket e poi letto da tcp_bpf_recvmsg_parser(), che a sua volta avvia copied_seq tramite il percorso contabile copied_from_self. Questo doppio conteggio fa sì che copied_seq avanzi di 2 volte la lunghezza effettiva dei dati, innescando:
TCP recvmsg seq # bug 2: copied BF2E806, seq BF2E7FD, \ rcvnxt BF2E806, fl 0 WARNING: net/ipv4/tcp.c:2745 at tcp_recvmsg_locked+0x72b/0x2640 Call Trace: tcp_recvmsg+0x10a/0x500 sock_recvmsg+0x168/0x1d0 __sys_recvfrom+0x19a/0x2a0 __x64_sys_recvfrom+0xe4/0x1f0 do_syscall_64+0xf7/0x530 entry_SYSCALL_64_after_hwframe+0x77/0x7f
cleanup rbuf bug: copied BF2E806 seq BF2E806 rcvnxt BF2E806 WARNING: net/ipv4/tcp.c:1609 at tcp_cleanup_rbuf+0xf2/0x1c0 Call Trace: tcp_recvmsg_locked+0x8d1/0x2640 tcp_recvmsg+0x10a/0x500 sock_recvmsg+0x168/0x1d0 __sys_recvfrom+0x19a/0x2a0 __x64_sys_recvfrom+0xe4/0x1f0 do_syscall_64+0xf7/0x530 entry_SYSCALL_64_after_hwframe+0x77/0x7f
La correzione consiste nel convertire il verdict di self-redirect in __SK_PASS all'inizio di sk_psock_verdict_apply(). Questo bypassa completamente il caso __SK_REDIRECT (che chiama sk_psock_eat_skb), consentendo al percorso __SK_PASS di accodare lo skb alla coda ingress psock. I dati vengono quindi letti tramite tcp_bpf_recvmsg_parser(), che avvia copied_seq esattamente una volta attraverso copied_from_self. I reindirizzamenti cross-socket continuano a seguire il percorso __SK_REDIRECT con sk_psock_eat_skb() invariato.
Be aware that VulDB is the high quality source for vulnerability data.