Разработчиците на проекта GrapheneOS, който развива защитен клон на кода на AOSP (Android Open Source Project), откриха уязвимост в Bluetooth стека на платформата Android 14, която потенциално може да доведе до отдалечено изпълнение на код. Проблемът е причинен от достъп до вече освободена област от паметта (use-after-free) в кода за обработка на звук, предаван чрез Bluetooth LE.
Уязвимостта беше открита благодарение на интеграцията на допълнителна защита в извикването на hardened_malloc, използваща разширението ARMv8.5 MTE (MemTag, Memory Tagging Extension), което позволява свързването на тагове с всяка операция по разпределение на паметта и организира проверка на коректността на използването на указатели, за да блокира експлоатацията на уязвимости, причинени от достъп до вече освободени блокове памет, препълвания на буфера, достъпи преди инициализация и използване извън текущия контекст.
Грешката се проявява от обновлението на Android 14 QPR2 (Quarterly Platform Release), публикувано в началото на март. В основната кодова база на платформата Android 14 механизмът MTE е наличен като опция и все още не се използва по подразбиране, но в GrapheneOS вече е внедрен за допълнителна защита, което е позволило диагностицирането на грешката след актуализацията до Android 14 QPR2. Грешката е довела до срив при използване на Bluetooth слушалки Samsung Galaxy Buds2 Pro с фърмуер, в който е включена защита на база MTE. Разследването на инцидента показа, че проблемът е свързан с достъпа до вече освободена памет в обработчика на Bluetooth LE и не е сблъсък поради интеграцията на MTE.
Уязвимостта е отстранена в изданието GrapheneOS 2024030900 и засяга сборките за смартфони, в които не е включена допълнителна хардуерна защита на базата на разширението MTE (MTE в момента е включен само за устройствата Pixel 8 и Pixel 8 Pro). Уязвимостта се възпроизвежда на смартфоните Google Pixel 8 с фърмуер на базата на Android 14 QPR2. В Android за смартфони от серията Pixel 8 режимът MTE може да бъде активиран в настройките за разработчици („Настройки / Система / Опции за разработчици / Разширения за маркиране на паметта“). Активирането на MTE води до увеличаване на потреблението на памет с приблизително 3%, но не намалява производителността.
Източник: opennet.ru
