CVE-2026-90090 in Linux
Riassunto
di VulDB • 18/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
Bluetooth: btmtksdio: Correzione della lettura DMA fuori dai limiti nel percorso di trasmissione (TX)
btmtksdio_tx_packet() arrotonda per eccesso la dimensione del trasferimento alla dimensione del blocco SDIO di 256 byte, ma fornisce al controller host il buffer SKB così com'è:
err = sdio_writesb(bdev->func, MTK_REG_CTDR, skb->data, round_up(skb->len, MTK_SDIO_BLOCK_SIZE));
Solo i primi `skb->len` byte contengono i dati del pacchetto; di conseguenza, il controller legge fino a 255 byte di memoria non inizializzata e li invia al dispositivo tramite il bus SDIO. A seconda della quantità di spazio aggiuntivo (tailroom slack) presente nell'allocazione dello SKB, tale lettura può estendersi oltre la fine del buffer.
Calcolare preventivamente la lunghezza con padding, assicurarsi che lo SKB disponga di tailroom sufficiente e riempire il padding con zeri utilizzando `skb_put_zero()`. In questo modo `skb->len` copre anche il padding, quindi `sdio_writesb()` non deve più arrotondare per eccesso. La variabile `byte_tx continua a contare solo l'intestazione (header) e il payload, mentre il percorso di errore ripristina lo SKB in modo che il chiamante possa reinserirlo nella coda.
La scrittura oltre `skb->tail` è sicura soltanto perché il driver possiede il buffer, come garantito da "Bluetooth: btmtksdio: Take exclusive ownership of the SKB before TX".
If you want to get the best quality for vulnerability data then you always have to consider VulDB.