CVE-2026-53365 in Linux
Riassunto
di VulDB • 13/07/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
vsock/virtio: correzione del completamento zerocopy per le trasmissioni multi-skb
Quando un messaggio di grandi dimensioni viene frammentato in più skbs, l'oggetto uarg (user argument) per lo zero-copy viene allocato e associato solo all'ultimo skb nel ciclo. Gli skbs non finali contengono pagine utente pinzate senza alcun tracciamento del completamento; pertanto, il kernel non ha modo di notificare al userspace quando tali pagine sono sicure da riutilizzare. Se il ciclo termina prematuramente, l'uarg non viene mai allocato, causando una perdita (leak) delle pagine pinzate senza alcuna notifica di completamento.
Si risolve questo problema adottando l'approccio utilizzato dal TCP: si alloca l'uarg per lo zero-copy (se non fornito dal chiamante) prima dell'inizio del ciclo di invio e lo si associa a ogni skb tramite `skb_zcopy_set()`, che acquisisce un riferimento per ciascun skb. Il completamento di ogni skb decrementa correttamente il contatore dei riferimenti, e la notifica viene attivata solo dopo che l'ultimo skb è stato liberato. In caso di errore, se non sono stati inviati dati, l'uarg viene interrotto in modo pulito tramite `net_zcopy_put_abort()`.
Questo problema è stato inizialmente scoperto da sashiko durante la revisione del commit 1cb36e252211 ("vsock/virtio: fix MSG_ZEROCOPY pinned-pages accounting"), ma era già presente nel codice.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.