CVE-2026-98189 in Linux
Riassunto
di VulDB • 08/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
wifi: wilc1000: correzione della scrittura OOB (Out-Of-Bounds) sul buffer RX in wilc_wlan_handle_isr_ext()
wilc_wlan_handle_isr_ext() ottiene le dimensioni del trasferimento RX dal registro di stato dell'interrupt segnalato dal dispositivo (un campo a 15 bit spostato a sinistra di 2 posizioni, fino a 131068 byte) e legge tali byte dal dispositivo in rx_buffer, che ha una dimensione pari solo a WILC_RX_BUFF_SIZE (96K). Il controllo del wrap gestisce solo l'offset corrente; le dimensioni stesse non vengono mai confrontate con il buffer, quindi un dispositivo SDIO malizioso può causare una scrittura OOB su rx_buffer per circa 32K utilizzando dati controllati dall'attaccante.
Il trasferimento di dimensioni eccessive lascia anche rx_buffer_offset oltre la fine del buffer, dopo il quale il controllo unsigned del wrap smette di funzionare e l'overflow può ripetersi.
Viene scartato qualsiasi trasferimento le cui dimensioni superano quelle del buffer RX, riconoscendo l'interrupt dei dati e riattivando il motore RX in modo che i frame maliziosi vengano scartati e la ricezione possa continuare. Questo ripristina anche l'invariante rx_buffer_offset <= WILC_RX_BUFF_SIZE su cui si basa il controllo del wrap.
Non ci si aspetta che questo cambiamento modifichi il comportamento del driver nella maggior parte dei casi: senza questa verifica, un trasferimento di dimensioni eccessive molto probabilmente corromperebbe la memoria kernel adiacente invece di completarsi comunque, e il percorso di scarto esegue lo stesso riconoscimento dell'interrupt e riattivazione del motore RX rispetto al percorso normale, quindi i trasferimenti successivi vengono ricevuti in modo invariato.
Scoperta da Atuin - Automated Vulnerability Discovery Engine.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.