Команда проекта GrapheneOS , которая работает над безопасной версией Android Open Source Project (AOSP), обнаружилапроблему в Bluetooth-стеке Android 14, приводящую к удаленному выполнению кода.
Уязвимость использования памяти после освобождения (Use-After-Free, UAF) возникает при передаче аудио через Bluetooth LE. Недостаток был обнаружен с помощью функции hardened_malloc, которая включает дополнительные меры защиты через ARMv8.5 MTE (MemTag, Memory Tagging Extension, расширение для маркировки памяти), что позволяет отслеживать и предотвращать неправильное использование указателей, связанное с освобожденными блоками памяти, переполнением буфера и другими подобными проблемами.
Уязвимость проявилась после обновления до Android 14 QPR2 в начале марта и касалась всех смартфонов, на которых не активирована MTE, хотя в GrapheneOS функция уже была реализована для усиления безопасности. Ошибка вызывала сбои при использовании Bluetooth-наушников Samsung Galaxy Buds2 Pro, если в прошивке включена защита MTE.
Уязвимость была устранена в последнем обновлении GrapheneOS 2024030900 и затрагивает только те сборки, где не задействована защита MTE (доступна только для Google Pixel 8 и Pixel 8 Pro). На устройствах Pixel 8 с последним обновлением Android 14 QPR2 проблема воспроизводилась, но её можно было предотвратить, включив MTE в настройках разработчика, что приводит к увеличению потребления памяти примерно на 3% без снижения производительности.