Marc Newlin, che sette anni fa ha scoperto la vulnerabilità MouseJack, ha rivelato informazioni su una vulnerabilità simile (CVE-2023-45866) che colpisce gli stack Bluetooth di Android, Linux, macOS e iOS, consentendo la sostituzione degli input da tastiera attraverso la simulazione di un'attività di un dispositivo di input connesso via Bluetooth. Avere accesso all'input della tastiera consente all'attaccante di eseguire azioni come l'esecuzione di comandi nel sistema, l'installazione di app e la reindirizzazione dei messaggi.
La vulnerabilità è causata dal fatto che i driver HID (Human Interface Device) host per i dispositivi Bluetooth hanno una modalità che consente a un dispositivo periferico remoto di creare e stabilire connessioni crittografate senza autenticazione. Tra l'altro, i dispositivi connessi in questo modo possono inviare messaggi da tastiera e lo stack HID li elaborerà, permettendo l'organizzazione di un attacco di sostituzione remota dei messaggi HID, che può essere condotto senza l'intervento dell'utente. L'attacco può essere effettuato con l'attaccante a una distanza di fino a 100 metri dalla vittima.
Il meccanismo di associazione 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. In Linux, utilizzando lo stack Bluetooth BlueZ per l'associazione nascosta, l'adattatore Bluetooth deve essere in modalità rilevamento e connessione. In Android è sufficiente attivare il supporto Bluetooth. In iOS e macOS, per condurre l'attacco, il Bluetooth deve essere attivato e una tastiera wireless deve essere connessa.
La possibilità di sostituzione degli input è stata dimostrata in Ubuntu 18.04, 20.04, 22.04 e 23.10 con stack Bluetooth basato sul pacchetto Bluez. ChromeOS non è vulnerabile, poiché le impostazioni dello stack Bluetooth non consentono connessioni senza autenticazione. In Android, la vulnerabilità colpisce i dispositivi con versioni della piattaforma da 4.2.2 a 14. In macOS, la vulnerabilità è stata dimostrata sul MacBook Pro 2022 con CPU Apple M2 e macOS 13.3.3 e sul MacBook Air 2017 con CPU Intel e macOS 12.6.7. In iOS, la vulnerabilità è stata dimostrata sull'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 nel codice sorgente di Bluez impostando la configurazione «ClassicBondedOnly» su «true», abilita la modalità sicura che consente la connessione solo dopo il pairing. In precedenza, era impostata su «false», che, a costo di ridurre la sicurezza, risolveva problemi di compatibilità con alcuni dispositivi di input.
Nel stack Bluetooth Fluoride, utilizzato nelle ultime versioni di Android, la vulnerabilità è stata risolta attraverso l'obbligo di autenticazione per tutte le connessioni crittografate. Gli aggiornamenti per Android sono stati creati solo per i rami 11-14. Per i dispositivi Pixel, la vulnerabilità è stata corretta nell'aggiornamento del firmware di dicembre. Per le versioni di Android da 4.2.2 a 10, la vulnerabilità rimane non risolta.
Fonte: opennet.ru
