GrapheneOS projekta izstrādātāji, kas attīsta drošu AOSP (Android Open Source Project) atzaru, ir identificējuši ievainojamību Android 14 platformas Bluetooth kompakta, kas potenciāli var izraisīt attālinātu koda izpildi. Problēma radusies, piekļūstot jau atbrīvotai atmiņas vietai (use-after-free) audio apstrādes kodā, kas tiek pārsūtīta caur Bluetooth LE.
Ievainojamība tika atklāta, integrējot papildu aizsardzību zvanu hardened_malloc, kas izmanto ARMv8.5 MTE (MemTag, Memory Tagging Extension) paplašinājumu, ļaujot piesaistīt tagus katrai atmiņas izlietošanas operācijai un veikt norāžu pareizības pārbaudes, lai novērstu ievainojamību izmantošanu, kas saistītas ar piekļuvi jau atbrīvotiem atmiņas blokiem, bufera pārslodzes gadījumiem, piekļūšanu pirms inicializācijas un izmantošanu ārpus tekošā konteksta.
Kļūda izpaužas sākot ar Android 14 QPR2 (Quarterly Platform Release) atjauninājumu, kas tika publicēts marta sākumā. Android 14 platformas pamatkodā MTE mehānisms ir pieejams kā opcija un pagaidām netiek izmantots pēc noklusējuma, taču GrapheneOS to jau ir ieviesusi papildu aizsardzībai, kas ļāva diagnosticēt kļūdu pēc atjauninājuma uz Android 14 QPR2. Kļūda izraisīja avārijas laikā, izmantojot Bluetooth austiņas Samsung Galaxy Buds2 Pro ar MTE pamata aizsardzību. Incidensa analīze parādīja, ka problēma saistīta ar piekļuvi jau atbrīvotai atmiņai Bluetooth LE apstrādē, nevis avāriju, ko izraisījusi MTE integrācija.
Ievainojamība ir novērsta GrapheneOS 2024030900 izlaidumā un attiecas uz uzkrāšanās izlaidumiem viedtālruņiem, kuros nav ieslēgta papildu aparatūras aizsardzība, kas balstīta uz MTE paplašinājumu (MTE pagaidām ir aktīvs tikai Pixel 8 un Pixel 8 Pro ierīcēm). Ievainojamība reproducējas Google Pixel 8 viedtālruņos ar Android 14 QPR2 pamata programmatūru. Android Pixel 8 sērijas viedtālruņiem MTE režīmu var aktivizēt izstrādātāju opcijās („Settings / System / Developer options / Memory Tagging Extensions”). MTE ieslēgšana palielina atmiņas patēriņu par apmēram 3%, bet neietekmē veiktspēju.
Avots: opennet.lv
