Специалисты Google практически во всех версиях Linux обнаружили уязвимость в таком программном стеке Bluetooth, как BlueZ. Это означает, что уязвимыми оказались сотни миллионов или даже миллиардов устройств и изделий в мире. Android, к счастью, имеет собственный Bluetooth-стек, но компьютеры и устройства на дистрибутивах Linux и Chrome OS оказались подвержены риску внешнего враждебного воздействия.

Стек BlueZ поддерживает все основные протоколы и уровни Bluetooth. Он разработан Qualcomm и сегодня курируется группой компаний во главе с Intel. Стек доступен для ядра Linux версии 2.4.6 и выше. По словам Intel, набор из трёх новых уязвимостей, который получил название BleedingTooth, «всего лишь» ведёт к открытию информации и к изменению уровня привилегий на атакуемом устройстве. Также компания утверждает, что последняя версия Linux 5.9 закрыта для этой уязвимости.

По мнению одного из известных разработчиков ядра Linux Мэтью Гаррета (Matthew Garrett), которое он высказал в своей ленте Twitter, Intel говорит неправду, когда утверждает, что в версии Linux 5.9 закрыты все пути для уязвимости через дыру в BlueZ. Также его возмутило то, что разработчики дистрибутивов Linux не были уведомлены о проблеме до публикации отчёта Intel об обнаруженной дыре и не смогли подготовить соответствующие патчи.

Реализовать обнаруженную уязвимость можно относительно просто, хотя для этого необходимо соблюсти ряд условий, организация которых может быть не по плечу взломщику с отсутствием опыта. Самое простое — необходимо быть в зоне действия Bluetooth-передатчика атакуемого устройства, и оно должно быть активированным. Что важно, предварительного сопряжения с атакуемым устройством не нужно, как и не нужны какие-либо действия жертвы — нажатие на ссылки, открытие файлов и прочее.

Для атаки необходимо знать MAC-адрес устройства жертвы. Определить его можно при «прослушивании эфира» программами для анализа трафика. Всё это позволяет атакующему без авторизации и каких-либо действий жертвы отправить ей особенным образом оформленные Bluetooth-пакеты и выполнить на устройстве программный код на уровне ядра Linux. Согласитесь, это слабо согласуется с расслабленным сообщением Intel об опасности смены уровня привилегий и раскрытии информации.

Как выявили и показали в примере эксплоита исследователи (видео выше), уязвимость стека BlueZ обнаруживается с версии Linux 4.8. Это касается дистрибутивов Debian, RHEL (начиная с 7.4, но это может измениться), SUSE, Ubuntu и Fedora. Предоставленные Intel патчи вошли в ветку linux-next, а не в ветку Linux 5.9, так что исправления следует ещё подождать.