Marc Newlin, quien identificó una vulnerabilidad MouseJack hace siete años, reveló información sobre una vulnerabilidad similar (CVE-2023-45866), que afecta a los stacks Bluetooth de Android, Linux, macOS e iOS. Esta vulnerabilidad permite la suplantación de pulsaciones de teclas mediante la simulación de la actividad de un dispositivo de entrada conectado por Bluetooth. Al acceder a la entrada del teclado, un atacante puede realizar diversas acciones, como ejecutar comandos en el sistema, instalar aplicaciones y redirigir mensajes.
La vulnerabilidad se debe a que los controladores asociados HID (Dispositivo de Interfaz Humana) para dispositivos Bluetooth tienen un modo que permite a un dispositivo periférico remoto establecer conexiones encriptadas sin autenticación. Estos dispositivos conectados pueden transmitir mensajes de teclado, y el stack HID los procesa, lo que abre la posibilidad de un ataque de suplantación de mensajes HID, que se puede llevar a cabo sin la intervención del usuario. Este ataque puede realizarse 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 Bluetooth y, dependiendo de la configuración del stack Bluetooth, permite conectar un dispositivo sin la confirmación del usuario. Por ejemplo, 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, es suficiente con habilitar el soporte Bluetooth. En iOS y macOS, para un ataque exitoso, el Bluetooth debe estar habilitado y también debe estar conectada una teclado inalámbrico.
La capacidad de suplantar la entrada se demostró 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 su 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 demostró en un MacBook Pro 2022 con procesador Apple M2 y macOS 13.3.3, así como en un MacBook Air 2017 con procesador Intel y macOS 12.6.7. En iOS, la vulnerabilidad se demostró en un iPhone SE con iOS 16.6. La activación del modo Lockdown no proporciona protección contra el ataque en macOS e iOS.
En Linux, la vulnerabilidad ha sido corregida en la base de código de Bluez, estableciendo la configuración «ClassicBondedOnly» en «true», se activa el modo seguro, que solo permite establecer conexiones después de emparejarse. Anteriormente, el valor estaba establecido en «false», lo que, por razones de compatibilidad con algunos dispositivos de entrada, reducía el nivel de seguridad.
En la pila Bluetooth Fluoride, utilizada en las últimas versiones de Android, se ha corregido la vulnerabilidad mediante la aplicación obligatoria de autenticación para todas las conexiones cifradas. Se lanzaron correcciones para Android únicamente para las ramas 11-14. Para los dispositivos Pixel, la vulnerabilidad fue corregida en la actualización de firmware de diciembre. Para las versiones de Android desde 4.2.2 hasta 10, la vulnerabilidad permanece sin solucionar.
Fuente: linux.org.ru
