Marc Newlin, qui a découvert la vulnérabilité MouseJack il y a sept ans, a révélé des informations sur une vulnérabilité similaire (CVE-2023-45866) touchant les piles Bluetooth d'Android, Linux, macOS et iOS, permettant de substituer des frappes de touches en simulant l'activité d'un dispositif d'entrée connecté via Bluetooth. Avec un accès à l'entrée du clavier, un attaquant peut effectuer des actions telles que l'exécution de commandes dans le système, l'installation d'applications et la redirection de messages.
La vulnérabilité est causée par le fait que les pilotes HID (Human Interface Device) hôtes pour les dispositifs Bluetooth possèdent un mode permettant à un périphérique distant de créer et d'établir des connexions chiffrées sans authentification. Parmi autres, les dispositifs connectés de cette manière peuvent transmettre des messages de clavier et la pile HID les traitera, ce qui permet d'organiser une attaque de substitution de messages HID à distance, réalisée sans l'intervention de l'utilisateur. L'attaque peut être menée à une distance allant jusqu'à 100 mètres de la victime.
Le mécanisme de couplage des dispositifs sans authentification est défini dans la spécification Bluetooth et, selon les paramètres de la pile Bluetooth, permet de connecter un dispositif sans confirmation de l'utilisateur. Sous Linux, en utilisant la pile Bluetooth BlueZ pour un couplage caché, l'adaptateur Bluetooth doit être en mode découverte et connexion. Sur Android, il suffit d'activer le support Bluetooth. Sur iOS et macOS, pour réaliser l'attaque, le Bluetooth doit être activé et un clavier sans fil doit être connecté.
La possibilité de substitution d'entrée a été démontrée sur Ubuntu 18.04, 20.04, 22.04 et 23.10 avec la pile Bluetooth basée sur le package Bluez. ChromeOS n'est pas vulnérable, car les paramètres de la pile Bluetooth ne permettent pas de connexion sans authentification. Sur Android, la vulnérabilité concerne les dispositifs avec des versions de plate-forme allant de 4.2.2 à 14. Sur macOS, la vulnérabilité a été démontrée sur le MacBook Pro 2022 avec CPU Apple M2 et macOS 13.3.3, ainsi que sur le MacBook Air 2017 avec CPU Intel et macOS 12.6.7. Sur iOS, la vulnérabilité a été démontrée sur l'iPhone SE avec iOS 16.6. L'activation du mode Lockdown ne protège pas contre l'attaque sur macOS et iOS.
Dans Linux, la vulnérabilité a été corrigée dans la base de code de Bluez en définissant l'option « ClassicBondedOnly » sur « true », incluant le mode sécurisé, qui permet d'établir des connexions uniquement après appairage. Auparavant, elle était définie sur « false », ce qui, au prix d'une réduction de la sécurité, résolvait des problèmes de compatibilité avec certains dispositifs d'entrée.
Dans la pile Bluetooth Fluoride, utilisée dans les dernières versions d'Android, la vulnérabilité a été corrigée grâce à l'application obligatoire de l'authentification pour toutes les connexions chiffrées. Les correctifs pour Android ont été formulés uniquement pour les branches 11-14. Pour les appareils Pixel, la vulnérabilité a été corrigée dans la mise à jour de firmware de décembre. Pour les versions d'Android de 4.2.2 à 10, la vulnérabilité reste non corrigée.
Source : opennet.ru
