CVE-2026-64552 in Linux
Riassunto
di VulDB • 28/07/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
virtio-net: correzione del controllo della lunghezza in receive_big()
receive_big() limita la lunghezza annunciata dal dispositivo a (big_packets_num_skbfrags + 1) * PAGE_SIZE. Tale limite risulta ancora troppo permissivo: add_recvbuf_big() imposta sg[1] affinché inizi con uno spostamento pari a sizeof(struct padded_vnet_hdr) all'interno della prima pagina; di conseguenza, la catena trasporta effettivamente hdr_len + (PAGE_SIZE - sizeof(padded_vnet_hdr)) + big_packets_num_skbfrags * PAGE_SIZE byte, ovvero 20 byte in meno rispetto alla lunghezza consentita dal controllo nel caso comune in cui hdr_len == 12.
Un backend virtio malintenzionato può annunciare una lunghezza all'interno di questo intervallo residuo. page_to_skb() procede quindi a scorrere un frammento oltre la catena delle pagine, memorizzando NULL in page->private dentro skb_shinfo()->frags[MAX_SKB_FRAGS], il che costituisce sia una scrittura fuori dai limiti (out-of-bounds write) rispetto all'array statico dei frammenti, sia l'erogazione di un frammento nullo lungo il percorso rx.
Limitare la lunghezza alla dimensione effettivamente pubblicata da add_recvbuf_big().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.