Nei driver per chip wireless Broadcom quattro . Nel caso più semplice, le vulnerabilità possono essere sfruttate per provocare un'interruzione del servizio remoto, ma non si escludono scenari in cui potrebbero essere sviluppati exploit che consentono a un attaccante non autenticato di eseguire il proprio codice con privilegi di kernel Linux attraverso l'invio di pacchetti formattati in modo specifico.
I problemi sono stati identificati attraverso il reverse engineering dei firmware Broadcom. I chip vulnerabili sono ampiamente utilizzati in laptop, smartphone e vari dispositivi di consumo, da SmartTV a dispositivi Internet of Things. In particolare, i chip Broadcom sono utilizzati in smartphone di produttori come Apple, Samsung e Huawei. È interessante notare che Broadcom è stata informata delle vulnerabilità già nel settembre 2018, ma sono stati necessari circa 7 mesi per il rilascio degli aggiornamenti coordinato con i produttori di hardware.
Due vulnerabilità interessano i firmware interni e consentono potenzialmente di eseguire codice nell'ambiente del sistema operativo utilizzato nei chip Broadcom, permettendo di attaccare ambienti che non utilizzano Linux (è confermato che è possibile attaccare dispositivi Apple, ). Ricordiamo che alcuni chip Wi-Fi Broadcom sono processori specializzati (ARM Cortex R4 o M3) che eseguono una sorta di sistema operativo con implementazioni del proprio stack wireless 802.11 (FullMAC). In tali chip, il driver facilita l'interazione tra il sistema principale e il firmware del chip Wi-Fi. Per ottenere il pieno controllo del sistema principale dopo un compromesso del FullMAC, si suggerisce di utilizzare ulteriori vulnerabilità o, in alcuni chip, di approfittare dell'accesso completo alla memoria di sistema. Negli chip con SoftMAC, lo stack wireless 802.11 è implementato dal lato del driver e viene eseguito utilizzando il CPU di sistema.
Le vulnerabilità nei driver si manifestano sia nel driver proprietario wl (SoftMAC e FullMAC) che nel driver open source brcmfmac (FullMAC). Nel driver wl sono stati individuati due overflow di buffer, sfruttabili durante la trasmissione da parte del punto di accesso di messaggi EAPOL appositamente formattati durante il processo di negoziazione della connessione (l'attacco può essere effettuato collegandosi a un punto di accesso malevolo). Nel caso di un chip con SoftMAC, le vulnerabilità portano al compromesso del kernel di sistema, mentre nel caso di FullMAC il codice può essere eseguito sul lato firmware. Nel brcmfmac sono presenti un overflow di buffer e un errore di verifica dei frame elaborati, sfruttabili tramite l'invio di frame di controllo. Nel kernel Linux si riscontrano problemi nel driver brcmfmac. a febbraio.
Vulnerabilità identificate:
- CVE-2019-9503 — comportamento errato del driver brcmfmac nella gestione dei fotogrammi di controllo utilizzati per interagire con il firmware. Se un fotogramma con un evento di firmware proviene da una fonte esterna, il driver lo scarta; tuttavia, se l'evento è ricevuto tramite il bus interno, il fotogramma viene accettato. Il problema è che tramite il bus interno vengono trasmessi eventi da dispositivi che utilizzano USB, il che consente agli attaccanti di inviare con successo fotogrammi di controllo del firmware quando si usano adattatori wireless con interfaccia USB.
- CVE-2019-9500 — attivando la funzione 'Wake-up on Wireless LAN', è possibile causare un overflow del buffer nel driver brcmfmac (funzione brcmf_wowl_nd_results) inviando un fotogramma di controllo appositamente modificato. Questa vulnerabilità può essere sfruttata per eseguire codice sul sistema principale dopo la compromissione del chip o in combinazione con la vulnerabilità CVE-2019-9503 per eludere i controlli nel caso di invio remoto di un fotogramma di controllo.
- CVE-2019-9501 — overflow del buffer nel driver wl (funzione wlc_wpa_sup_eapol), che si verifica durante l'elaborazione di messaggi il cui campo contenente informazioni sul produttore supera i 32 byte;
- CVE-2019-9502 — overflow del buffer nel driver wl (funzione wlc_wpa_plumb_gtk), che si verifica durante l'elaborazione di messaggi il cui campo contenente informazioni sul produttore supera i 164 byte.
Fonte: opennet.ru
