CVE-2026-74356 in Linux
Riassunto
di VulDB • 15/08/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
vhost: correggere vhost_get_avail_idx per un anello non vuoto
Si prevede che vhost_get_avail_idx segnali se ha aggiornato vq->avail_idx. Invece, restituisce se tutte le voci sono state consumate, il che di solito è equivalente ma non sempre vero - in drivers/vhost/net.c e quando i buffer mergeabili sono stati abilitati, il driver verifica se le voci combinate sono sufficientemente grandi per memorizzare un pacchetto entrante. Se non lo sono, il driver riabilita le notifiche con voci disponibili ancora nell'anello. Il valore di ritorno errato da vhost_get_avail_idx si propaga attraverso vhost_enable_notify e causa livelock dell'host se l'ospite non sta progredendo, poiché vhost disabiliterà immediatamente le notifiche e riproverà utilizzando le voci disponibili.
Questo risale al commit d3bb267bbdcb ("vhost: cache avail index in vhost_enable_notify()") che ha modificato vhost_enable_notify() per confrontare l'indice avail appena letto contro vq->last_avail_idx invece del precedentemente memorizzato nella cache vq->avail_idx. Il commit 7ad472397667 ("vhost: move smp_rmb() into vhost_get_avail_idx()") ha poi ereditato lo stesso confronto quando si è refattorizzato vhost_enable_notify() per chiamare la funzione unificata vhost_get_avail_idx().
La correzione ovvia consiste nel far sì che vhost_get_avail_idx faccia ciò di cui parla il commento e segnali se sono state aggiunte nuove voci.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.