Vývojáři projektu GrapheneOS, který vyvíjí zabezpečenou odnož kódu AOSP (Android Open Source Project), odhalili zranitelnost v Bluetooth stacku platformy Android 14, která potenciálně může vést k vzdálenému spuštění kódu. Problém je způsoben přístupem k již uvolněné oblasti paměti (use-after-free) v kódu pro zpracování zvuku přenášeného přes Bluetooth LE.
Zranitelnost byla odhalena díky integraci dodatečné ochrany do volání hardened_malloc, která využívá rozšíření ARMv8.5 MTE (MemTag, Memory Tagging Extension), umožňující přiřadit tagy k každé operaci alokace paměti a provádět kontrolu správnosti použití ukazatelů, aby se zablokovalo zneužití zranitelností způsobených přístupem k již uvolněným blokům paměti, přetečením bufferu, přístupem před inicializací a používáním mimo aktuální kontext.
Chyba se projevuje od aktualizace Android 14 QPR2 (Quarterly Platform Release), která byla vydána na začátku března. V hlavním kódu platformy Android 14 je mechanismus MTE k dispozici jako volba a zatím se ve výchozím nastavení nepoužívá, ale v GrapheneOS už byl nasazen pro další ochranu, což umožnilo diagnostikovat chybu po aktualizaci na Android 14 QPR2. Chyba vedla k havarijnímu ukončení při používání Bluetooth sluchátek Samsung Galaxy Buds2 Pro s firmwarem, ve kterém byla aktivována ochrana založená na MTE. Rozbor incidentu ukázal, že problém souvisí s přístupem k již uvolněné paměti v zpracovateli Bluetooth LE, a nikoli s chybou kvůli integraci MTE.
Zranitelnost byla odstraněna ve verzi GrapheneOS 2024030900 a týká se sestavení pro smartphony, ve kterých není povolena dodatečná hardwarová ochrana založená na rozšíření MTE (MTE je zatím aktivováno pouze pro zařízení Pixel 8 a Pixel 8 Pro). Zranitelnost se reprodukuje na smartphonech Google Pixel 8 s firmwarem na základě Android 14 QPR2. V Androidu pro smartphony řady Pixel 8 lze režim MTE aktivovat v nastavení pro vývojáře („Nastavení / Systém / Možnosti pro vývojáře / Rozšíření pro tagování paměti“). Aktivování MTE vede k mírnému zvýšení spotřeby paměti o přibližně 3 %, ale nesnižuje výkon.
Zdroj: opennet.ru
