Razvijalci projekta GrapheneOS, ki razvija zaščiteno različico osnovne kode AOSP (Android Open Source Project), so odkrili ranljivost v Bluetooth stacku platforme Android 14, ki lahko potencialno privede do oddaljenega izvajanja kode. Težava je posledica dostopa do že osvobojene spominske površine (use-after-free) v kodi obdelave zvoka, ki se prenaša preko Bluetooth LE.
Ranljivost je bila odkrita z integracijo dodatne zaščite v klic hardened_malloc, ki uporablja razširitev ARMv8.5 MTE (MemTag, Memory Tagging Extension), kar omogoča dodelitev oznak vsaki operaciji dodelitve spomina in organizacijo preverjanja pravilnosti uporabe kazalnikov za preprečevanje izkoriščanja ranljivosti, ki izhajajo iz dostopa do že osvobojenih blokov spomina, prenasičenja pomnilnika, dostopa pred inicializacijo in uporabe zunaj trenutnega konteksta.
Napaka se kaže od posodobitve Android 14 QPR2 (Quarterly Platform Release), objavljene v začetku marca. V osnovni kodi platforme Android 14 je mehanizem MTE na voljo kot možnost in zaenkrat ni implementiran privzeto, vendar je v GrapheneOS že uporabljen za dodatno zaščito, kar je omogočilo diagnosticiranje napake po nadgradnji na Android 14 QPR2. Napaka je povzročila sesutje ob uporabi Bluetooth slušalk Samsung Galaxy Buds2 Pro s programsko opremo, ki vključuje zaščito na osnovi MTE. Analiza primera je pokazala, da je težava povezana z dostopanjem do že osvobojene spomina v obdelovalniku Bluetooth LE, ne pa z napako zaradi integracije MTE.
Ranljivost je odpravljena v izdanju GrapheneOS 2024030900 in se nanaša na gradnje za pametne telefone, v katerih ni vključene dodatne strojne zaščite na osnovi razširitve MTE (MTE je trenutno vključen samo za naprave Pixel 8 in Pixel 8 Pro). Ranljivost se reproducira na pametnih telefonih Google Pixel 8 s programsko opremo, ki temelji na Android 14 QPR2. V Androidu za pametne telefone serije Pixel 8 je možno način MTE omogočiti v nastavitvah za razvijalce („Settings / System / Developer options / Memory Tagging Extensions“). Omogočanje MTE povečuje porabo pomnilnika za približno 3%, vendar ne zmanjša zmogljivosti.
Izvor: opennet.ru
