Марк Нюлин, който откри уязвимостта MouseJack преди седем години, разкри информация за подобна уязвимост (CVE-2023-45866), засягащи Bluetooth стековете Android, Linux, macOS и iOS. Тази уязвимост позволява подправяне на натискане на клавиши, като симулира активността на устройство за въвеждане, свързано чрез Bluetooth. Чрез получаване на достъп до въвеждане от клавиатурата, нападателят може да извършва различни действия, като например изпълнение на системни команди, инсталиране на приложения и препращане на съобщения.
Уязвимостта е причинена от режим в драйверите на Bluetooth HID (Human Interface Device) хост, който позволява на отдалечени периферни устройства да създават и установяват криптирани връзки без удостоверяване. Тези свързани устройства могат да предават съобщения от клавиатурата, които се обработват от HID стека, което отваря възможност за атака с подправяне на HID съобщения, извършена без взаимодействие с потребителя. Тази атака може да бъде извършена от разстояние до 100 метра от жертвата.
Механизмът за сдвояване на устройства без удостоверяване е дефиниран в Bluetooth спецификацията и, в зависимост от настройките на Bluetooth стека, позволява на устройството да се свързва без потвърждение от потребителя. Например, в Linux, когато използвате BlueZ Bluetooth стека, за скрито сдвояване Bluetooth адаптерът трябва да е в режим на откриване и свързване. В Android Достатъчно е да активирате Bluetooth поддръжката. В iOS и macOS За успешна атака е необходимо да се активира Bluetooth и да се свърже безжична клавиатура.
Възможността за заместване на входните данни беше демонстрирана в Ubuntu 18.04, 20.04, 22.04 и 23.10 с Bluetooth стек, базиран на пакета BlueZ. ChromeOS не е уязвима, тъй като настройките на Bluetooth стека ѝ не позволяват връзки без удостоверяване. Android Уязвимостта засяга устройства с версии на платформата от 4.2.2 до 14. macOS Уязвимостта беше демонстрирана на MacBook Pro от 2022 г. с процесор Apple M2 и macOS 13.3.3, както и на MacBook Air 2017 с процесор Intel и macOS 12.6.7. В iOS уязвимостта беше демонстрирана на iPhone SE с iOS 16.6. Активирането на режим на заключване не осигурява защита срещу атаки срещу macOS и iOS.
В Linux уязвимост беше елиминиран В кодовата база на Bluez, чрез задаване на настройката „ClassicBondedOnly“ на „true“, което активира защитен режим, който позволява връзки само след сдвояване. Преди това настройката беше „false“, което компрометираше сигурността за съвместимост с някои входни устройства.
В Bluetooth стека на Fluoride, използван в последните версии Android, Уязвимостта е отстранена чрез задължително удостоверяване за всички криптирани връзки. Поправки за Android бяха пуснати само за клонове 11-14. За устройства Pixel уязвимостта беше отстранена в декемврийската актуализация на фърмуера. За издания Android От версия 4.2.2 до 10 уязвимостта остава непоправена.
Източник: linux.org.ru
