Marc Newlin, che ha scoperto la vulnerabilità MouseJack sette anni fa, ha rivelato informazioni su una vulnerabilità simile (CVE-2023-45866), che colpisce i livelli Bluetooth di Android, Linux, macOS e iOS. Questa vulnerabilità consente di falsificare le pressioni dei tasti simulando l'attività di un dispositivo di input connesso via Bluetooth. Una volta ottenuto l'accesso all'input da tastiera, un attaccante può eseguire varie azioni, come eseguire comandi di sistema, installare applicazioni e reindirizzare messaggi.
La vulnerabilità è causata dal fatto che i driver host HID (Human Interface Device) per i dispositivi Bluetooth possiedono una modalità che permette a un dispositivo periferico remoto di stabilire connessioni crittografate senza autenticazione. I dispositivi connessi possono inviare messaggi da tastiera e lo stack HID li elabora, aprendo la possibilità di un attacco di sostituzione dei messaggi HID, eseguito senza il coinvolgimento dell'utente. Questo attacco può essere condotto a una distanza di fino a 100 metri dalla vittima.
Il meccanismo di accoppiamento dei dispositivi senza autenticazione è definito nella specifica Bluetooth e, a seconda delle impostazioni dello stack Bluetooth, consente di collegare un dispositivo senza conferma da parte dell'utente. Ad esempio, in Linux, utilizzando lo stack Bluetooth BlueZ, per un accoppiamento nascosto l'adattatore Bluetooth deve essere in modalità di rilevamento e collegamento. In Android è sufficiente abilitare il supporto Bluetooth. In iOS e macOS, per un attacco riuscito, Bluetooth deve essere attivato e una tastiera wireless deve essere connessa.
La possibilità di sostituire l'input è stata dimostrata in Ubuntu 18.04, 20.04, 22.04 e 23.10 con uno stack Bluetooth basato sul pacchetto BlueZ. ChromeOS non è vulnerabile, poiché le sue impostazioni dello stack Bluetooth non consentono connessioni senza autenticazione. In Android, la vulnerabilità interessa i dispositivi con versioni della piattaforma dalla 4.2.2 fino alla 14. In macOS, la vulnerabilità è stata dimostrata su MacBook Pro 2022 con processore Apple M2 e macOS 13.3.3, e su MacBook Air 2017 con processore Intel e macOS 12.6.7. In iOS, la vulnerabilità è stata dimostrata su iPhone SE con iOS 16.6. L'attivazione della modalità Lockdown non protegge dagli attacchi su macOS e iOS.
In Linux, la vulnerabilità è stata risolta nella base di codice Bluez, impostando la configurazione "ClassicBondedOnly" su "true", viene attivata la modalità sicura, che consente di stabilire connessioni solo dopo il pairing. In precedenza, il valore era impostato su "false", il che riduceva il livello di sicurezza per compatibilità con alcuni dispositivi di input.
Nel stack Bluetooth Fluoride, utilizzato nelle ultime versioni di Android, la vulnerabilità è stata corretta richiedendo l'applicazione obbligatoria dell'autenticazione per tutte le connessioni criptate. Le patch per Android sono state rilasciate solo per i rami 11-14. Per i dispositivi Pixel, la vulnerabilità è stata risolta nell'aggiornamento del firmware di dicembre. Per le versioni di Android da 4.2.2 a 10, la vulnerabilità rimane irrisolta.
Fonte: linux.org.ru
