Marc Newlin, che ha scoperto la vulnerabilità MouseJack sette anni fa, ha rivelato informazioni su una vulnerabilità analoga (CVE-2023-45866), che colpisce gli stack Bluetooth di Android, Linux, macOS e iOS. Questa vulnerabilità consente di sostituire i tasti premuti simulando l'attività di un dispositivo di input connesso via Bluetooth. Ottenendo accesso all'input della tastiera, un attaccante può eseguire diverse azioni, come eseguire comandi nel sistema, installare applicazioni e reindirizzare messaggi.
La vulnerabilità è causata dal fatto che i driver host HID (Human Interface Device) per i dispositivi Bluetooth hanno una modalità che consente a un dispositivo periferico remoto di stabilire e creare connessioni crittografate senza autenticazione. Questi dispositivi connessi possono inviare messaggi da tastiera, e lo stack HID li elabora, aprendo così la possibilità di un attacco di sostituzione dei messaggi HID, effettuato senza l'intervento dell'utente. Questo attacco può essere condotto fino a 100 metri di distanza dalla vittima.
Il meccanismo di accoppiamento dei dispositivi senza autenticazione è definito nella specifica Bluetooth e, a seconda delle impostazioni dello stack Bluetooth, consente di connettere un dispositivo senza conferma da parte dell'utente. Ad esempio, in Linux, utilizzando lo stack Bluetooth BlueZ, per l'accoppiamento nascosto l'adattatore Bluetooth deve essere in modalità di scoperta e connessione. In Android è sufficiente attivare il supporto Bluetooth. In iOS e macOS, per un attacco di successo, il Bluetooth deve essere attivato e deve essere collegata una tastiera wireless.
La possibilità di sostituzione dell'input è stata dimostrata su 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à colpisce i dispositivi con versioni della piattaforma dalla 4.2.2 alla 14. In macOS, la vulnerabilità è stata dimostrata su MacBook Pro 2022 con processore Apple M2 e macOS 13.3.3, e anche 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 offre protezione contro l'attacco su macOS e iOS.
In Linux, la vulnerabilità è stata corretta nella base di codice di Bluez impostando l'opzione "ClassicBondedOnly" su "true", che attiva la modalità sicura consentendo la creazione di connessioni solo dopo il processo di accoppiamento. In precedenza, era impostato su "false", il che, per garantire la compatibilità con alcuni dispositivi di input, riduceva il livello di sicurezza.
Nel stack Bluetooth Fluoride, utilizzato nelle ultime versioni di Android, la vulnerabilità è stata rimossa rendendo obbligatoria l'autenticazione per tutte le connessioni criptate. Le patch per Android sono state rilasciate solo per le versioni 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
