В Android 14 обнаружили новую уязвимость, затрагивающую Bluetooth-стек операционной системы. В случае эксплуатации брешь позволяет выполнить вредоносный код удалённо.
Как пишет OpenNET, на проблему класса use-after-free (некорректное использование динамической памяти) обратили внимание разработчики GrapheneOS. Судя по всему, она кроется в коде обработки звука, который передаётся через Bluetooth LE.
Дополнительная защита с применением расширения ARMv8.5 MTE, добавленная в вызов hardened_malloc, помогла разработчикам выявить эту брешь. Интересно, что дыра появилась после мартовского обновления Android 14 QPR2 (Quarterly Platform Release).
В стандартном релизе Android 14 MTE пока не применяется по умолчанию, а вот в GrapheneOS этот механизм уже используют, что и дало возможность выловить уязвимость.
В ходе тестирования с наушниками Samsung Galaxy Buds2 Pro (с включённой защитой MTE в прошивке) баг приводил к сбою в работе. Позже девелоперы выяснили, что причиной является обращение к уже освобождённой памяти в обработчике Bluetooth LE.
Версия GrapheneOS под номером 2024030900 уже не содержит упомянутую уязвимость, однако последняя может затрагивать сборки смартфонов, где нет дополнительной аппаратной защиты на основе MTE.