CVE-2026-93105 in Linux
Riassunto
di VulDB • 18/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
esp: non effettuare l'unreference delle pagine dei frammenti gestiti in esp_ssg_unref()
esp_ssg_unref() rilascia i riferimenti alle pagine detenuti sull'elenco di scatter (scatterlist) sorgente dopo il completamento dell'operazione AEAD. Viene chiamata skb_page_unref() su ogni pagina del frammento per una trasformazione out-of-place (req->src != req->dst), e nel percorso di errore di esp_output_tail() (already_unref == true) sullo stesso elenco di scatter della richiesta.
Questo è errato quando il socket buffer (skb) trasporta frammenti gestiti (SKBFL_MANAGED_FRAG_REFS). I frammenti gestiti sono di proprietà di un ubuf a zero-copy e l'skb non detiene un riferimento alla pagina per ogni frammento; io_uring SEND_ZC con un buffer registrato attacca le pagine bvec in questo modo tramite io_sg_from_iter(). Il resto dello stack rispetta questa invariant: skb_release_data() salta l'unreference per frammento quando SKBFL_MANAGED_FRAG_REFS è impostato, e skb_zcopy_managed() è il guardiano utilizzato negli altri siti di unreference.
esp_ssg_unref() manca tale guardiano, quindi per un skb con frammenti gestiti rilascia un riferimento alla pagina che l'skb non ha mai acquisito. Ciò può causare un underflow del conteggio dei riferimenti alle pagine e liberare una pagina ancora in uso.
Aggiungere il guardiano skb_zcopy_managed() alla funzione in modo da saltare entrambi i percorsi di unreference per gli skb con frammenti gestiti, corrispondendo a quanto fatto da skb_release_data().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.