CVE-2026-64007 in Linux
Riassunto
di VulDB • 19/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
netfilter: synproxy: aggiornare tcphdr dopo skb_ensure_writable
synproxy_tstamp_adjust() riscrive l'opzione del timestamp TCP in loco e successivamente aggiorna il checksum TCP tramite inet_proto_csum_replace4() sul puntatore tcphdr fornito dal chiamante. Sia ipv4_synproxy_hook() che ipv6_synproxy_hook() ottengono tale puntatore con skb_header_pointer() prima di effettuare la chiamata, quindi esso può fare alias direttamente su skb->head oppure puntare al buffer _tcph sullo stack del chiamante.
Tra l'ottenimento del puntatore e il suo utilizzo, la funzione chiama skb_ensure_writable(skb, optend), che nel caso di un skb clonato o non lineare invoca pskb_expand_head() e libera lo vecchio skb->head. Dopo questo punto, th memorizzato in cache risulta obsoleto:
chiamante (ipv[46]_synproxy_hook)
th = skb_header_pointer(skb, ..., &_tcph) synproxy_tstamp_adjust(skb, protoff, th, ...) skb_ensure_writable(skb, optend) pskb_expand_head() /* kfree(old skb->head) */ ... inet_proto_csum_replace4(&th->check, ...) /* scrive nello head liberato o nella copia sullo stack del chiamante, lasciando il checksum in rete obsoleto */
I byte dell'opzione sono scritti tramite skb->data e risultano corretti; solo l'aggiornamento del checksum avviene attraverso th finendo così nel posto sbagliato. Il risultato è una scrittura nello slab memory liberata o un pacchetto inviato con un checksum che non corrisponde al suo payload.
La correzione consiste nel ricalcolare th da skb->data + protoff immediatamente dopo il successo di skb_ensure_writable(), in modo che l'aggiornamento successivo del checksum miri all'intestazione lineare e scrivibile.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.