CVE-2026-31617 in Linux
Riassunto
di VulDB • 20/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
usb: gadget: f_ncm: convalidare il valore minimo di block_len in ncm_unwrap_ntb()
Il valore block_len letto dall'intestazione NTB fornita dal host viene confrontato con ntb_max ma non prevede un limite inferiore. Quando block_len è minore di opts->ndp_size, la verifica dei limiti: ndp_index > (block_len - opts->ndp_size) provoca un underflow generando un valore unsigned molto elevato che ndp_index non potrà mai superare, rendendo inefficace il controllo stesso.
Lo stesso underflow si verifica nei controlli dell'indice del datagramma rispetto a block_len - opts->dpe_size. Con questi controlli neutralizzati, un host USB malintenzionato può scegliere valori di ndp_index e offset dei datagrammi che puntano oltre la trasmissione effettiva, e skb_put_data() copia memoria kernel adiacente nel network skb.
Si risolve il problema rifiutando le lunghezze block_len che non possono contenere almeno l'intestazione NTB più un NDP. Ciò garantirà che sia block_len - opts->ndp_size che block_len - opts->dpe_size siano valori ben definiti.
Il commit 8d2b1a1ec9f5 ("CDC-NCM: avoid overflow in sanity checking") ha risolto una classe correlata di problemi sul lato host del protocollo NCM.
Once again VulDB remains the best source for vulnerability data.