Уязвимость в Android, позволяющая удалённо выполнить код при включённом Bluetooth

В февральском обновлении платформы Android устранена критическая уязвимость (CVE-2020-0022) в Bluetooth-стеке, позволяющая организовать удалённое выполнение кода через отправку специально оформленного Bluetooth-пакета. Проблема может быть незаметно эксплуатирована атакующим, находящимся в пределах досягаемости Bluetooth. Не исключено задействование уязвимости для создания червей, по цепочке поражающих соседние устройства.

Для атаки достаточно знать MAC-адрес устройства жертвы (предварительного сопряжения не требуется, но нужно чтобы на устройстве был включён Bluetooth). На некоторых устройствах MAC-адрес Bluetooth может быть вычислен на основе MAC-адреса Wi-Fi. В случае успешной эксплуатации уязвимости атакующий может выполнить свой код с правами фонового процесса, координирующего работу Bluetooth в Android.
Проблема специфичная для применяемого в Android Bluetooth-стека Fluoride (основан на коде проекта BlueDroid от компании Broadcom) и не проявляется в применяемом в Linux стеке BlueZ.

Выявившие проблему исследователи смогли подготовить рабочий прототип эксплоита, но детали эксплуатации будут раскрыты позднее, после того как исправление будет доведено до основной массы пользователей. Известно только, что уязвимость присутствует в коде пересборки пакетов и вызвана некорректным вычислением размера пакетов L2CAP (Logical link control and adaptation protocol), в случае если переданные отправителем данные, превышают ожидаемый размер.

В Android 8 и 9 проблема может привести к выполнению кода, но в Android 10 ограничивается крахом фонового процесса Bluetooth. Более старые выпуски Android потенциально подвержены проблеме, но возможность эксплуатации уязвимости не тестировалась. Пользователям рекомендуется как можно скорее установить обновление прошивки, а если это невозможно — по умолчанию отключить Bluetooth, запретить обнаружение устройства и активировать Bluetooth в общественных местах только при крайней необходимости (в том числе можно заменить беспроводные наушники на проводные).

Кроме отмеченной проблемы в февральском наборе исправлений проблем с безопасностью для Android устранено 26 уязвимостей, из которых ещё одной уязвимости (CVE-2020-0023) присвоен критический уровень опасности. Вторая уязвимость также затрагивает Bluetooth-стек и связана с некорректной обработкой привилегии BLUETOOTH_PRIVILEGED в setPhonebookAccessPermission. Что касается уязвимостей, помеченных как опасные, то 7 проблем устранено во фреймворках и приложениях, 4 в системных компонентах, 2 в ядре и 10 в открытых и проприетарных компонентах для чипов Qualcomm.

Источник: opennet.ru