Marc Newlin, que há sete anos revelou a vulnerabilidade MouseJack, revelou informações sobre uma vulnerabilidade semelhante (CVE-2023-45866) que afeta as pilhas Bluetooth do Android, Linux, macOS e iOS, permitindo a substituição de pressionamentos de teclas por meio da simulação de atividade de um dispositivo de entrada conectado via Bluetooth. Com acesso à entrada do teclado, o atacante pode executar ações como iniciar comandos no sistema, instalar aplicativos e redirecionar mensagens.
A vulnerabilidade é causada pelo fato de que os drivers HID (Human Interface Device) para dispositivos Bluetooth têm um modo que permite que um dispositivo periférico remoto crie e estabeleça conexões criptografadas sem autenticação. Entre outras coisas, dispositivos conectados dessa forma podem transmitir mensagens de teclado e a pilha HID as processará, permitindo a realização de um ataque de substituição remota de mensagens HID, realizado sem a participação do usuário. O ataque pode ser realizado com o atacante a uma distância de até 100 metros da vítima.
O mecanismo de emparelhamento de dispositivos sem autenticação é definido na especificação Bluetooth e, dependendo das configurações da pilha Bluetooth, permite conectar um dispositivo sem confirmação do usuário. No Linux, ao usar a pilha Bluetooth BlueZ para emparelhamento oculto, o adaptador Bluetooth deve estar em modo de descoberta e conexão. No Android, basta ativar o suporte ao Bluetooth. No iOS e macOS, para realizar o ataque, o Bluetooth deve estar ativado e um teclado sem fio conectado.
A capacidade de substituição de entrada foi demonstrada no Ubuntu 18.04, 20.04, 22.04 e 23.10 com a pilha Bluetooth baseada no pacote Bluez. O ChromeOS não é vulnerável, pois as configurações da pilha Bluetooth não permitem conexões sem autenticação. No Android, a vulnerabilidade afeta dispositivos com versões de plataforma de 4.2.2 a 14. No macOS, a vulnerabilidade foi demonstrada no MacBook Pro 2022 com CPU Apple M2 e macOS 13.3.3 e no MacBook Air 2017 com CPU Intel e macOS 12.6.7. No iOS, a vulnerabilidade foi demonstrada no iPhone SE com iOS 16.6. Ativar o modo Lockdown não protege contra ataques no macOS e iOS.
No Linux, a vulnerabilidade foi corrigida na base de código do Bluez através da configuração do parâmetro "ClassicBondedOnly" para true, ativando o modo seguro que permite a conexão apenas após o emparelhamento. Anteriormente, esse valor era definido como false, o que, ao custo de segurança, resolvia problemas de compatibilidade com alguns dispositivos de entrada.
No stack Bluetooth Fluoride, utilizado nas versões mais recentes do Android, a vulnerabilidade foi corrigida através da aplicação obrigatória de autenticação para todas as conexões criptografadas. As correções para o Android foram formuladas apenas para as versões 11 a 14. Para dispositivos Pixel, a vulnerabilidade foi corrigida na atualização de firmware de dezembro. Para versões do Android de 4.2.2 a 10, a vulnerabilidade permanece não corrigida.
Fonte: opennet.ru
