Marc Newlin, que descubrió la vulnerabilidad MouseJack hace siete años, ha revelado información sobre una vulnerabilidad similar (CVE-2023-45866) que afecta a los stacks de Bluetooth en Android, Linux, macOS y iOS, permitiendo la sustitución de pulsaciones de teclas a través de la simulación de la actividad de un dispositivo de entrada conectado por Bluetooth. Con acceso a la entrada del teclado, un atacante puede realizar acciones como ejecutar comandos en el sistema, instalar aplicaciones y redirigir mensajes.
La vulnerabilidad se debe a que los controladores HID (Dispositivos de Interfaz Humana) para dispositivos Bluetooth tienen un modo que permite a un periférico remoto crear y establecer conexiones cifradas sin autenticación. Entre otras cosas, los dispositivos conectados de esta manera pueden transmitir mensajes del teclado y el stack HID los procesará, lo que permite llevar a cabo un ataque de sustitución remota de mensajes HID sin la intervención del usuario. El ataque puede realizarse con el atacante a una distancia de hasta 100 metros de la víctima.
El mecanismo de emparejamiento de dispositivos sin autenticación está definido en la especificación de Bluetooth y, dependiendo de la configuración del stack Bluetooth, permite conectar un dispositivo sin la confirmación del usuario. En Linux, al utilizar el stack Bluetooth BlueZ para el emparejamiento oculto, el adaptador Bluetooth debe estar en modo de descubrimiento y conexión. En Android, basta con activar el soporte de Bluetooth. En iOS y macOS, para llevar a cabo el ataque, Bluetooth debe estar activado y un teclado inalámbrico conectado.
La posibilidad de sustituir entradas se ha demostrado en Ubuntu 18.04, 20.04, 22.04 y 23.10 con el stack Bluetooth basado en el paquete Bluez. ChromeOS no es vulnerable, ya que la configuración del stack Bluetooth no permite conexiones sin autenticación. En Android, la vulnerabilidad afecta a dispositivos con versiones de plataforma desde 4.2.2 hasta 14. En macOS, la vulnerabilidad se ha demostrado en el MacBook Pro 2022 con CPU Apple M2 y macOS 13.3.3, así como en el MacBook Air 2017 con CPU Intel y macOS 12.6.7. En iOS, la vulnerabilidad se ha evidenciado en el iPhone SE con iOS 16.6. La activación del modo Lockdown no protege contra el ataque en macOS e iOS.
En Linux, se ha corregido una vulnerabilidad en el código de Bluez al establecer la configuración 'ClassicBondedOnly' en true, activando un modo seguro que permite establecer conexiones solo después de emparejarse. Anteriormente se había establecido en false, lo que a costa de una menor seguridad resolvía problemas de compatibilidad con ciertos dispositivos de entrada.
En la pila de Bluetooth Fluoride, utilizada en las últimas versiones de Android, se ha solucionado una vulnerabilidad mediante la aplicación obligatoria de autenticación para todas las conexiones cifradas. Las correcciones para Android se han creado solo para las ramas 11-14. Para los dispositivos Pixel, la vulnerabilidad se corrigió en la actualización de firmware de diciembre. En las versiones de Android de 4.2.2 a 10, la vulnerabilidad sigue sin ser resuelta.
Fuente: opennet.ru
