GrapheneOS projekti arendajad, kes töötavad AOSP (Android Open Source Project) turvalise haru kallal, avastasid Android 14 platvormi Bluetooth'i virna haavatavuse, mis võib potentsiaalselt viia koodi kaugkäivitamiseni. Probleemi põhjustab juba vabastatud mälupiirkonna (use-after-free) juurdepääs helitöötluskoodis, mis edastab andmeid Bluetooth LE kaudu.
Haavatavus avastati, tänu ühendamisele hardened_malloc'i lisakaitsega, mis kasutab ARMv8.5 MTE (MemTag, Memory Tagging Extension) laiendust. See võimaldab siduda märkmeid iga mälu jaotamise operatsiooniga ning korraldada näidikute õigsuse kontrolli, et takistada haavatavuste ekspluateerimist, mis on põhjustatud juba vabastatud mälupulkade, puhverülekkannete, algatamata juurdepääsude ja vale konteksti kasutamise kaudu.
Viga ilmneb alates Android 14 QPR2 (kvartaalne platvormi väljaanne) uuendusest, mis avaldati märtsi alguses. Android 14 platvormi põhikoodeksis on MTE mehhanism saadaval valikuna ja seda ei rakendata vaikimisi, kuid GrapheneOS on selle juba tegevuses, et pakkuda täiendavat kaitset, mis võimaldas vea diagnoosida pärast Android 14 QPR2 uuendust. Viga põhjustas kokkuvarisemise, kui kasutati Samsung Galaxy Buds2 Pro Bluetooth-kõrvaklappe, millel oli aktiveeritud MTE-põhine kaitse. Juhtumi analüüs näitas, et probleem oli seotud juba vabastatud mälu käsitlemisega Bluetooth LE töötlejas, mitte MTE integreerimise tõttu esineva tõrkega.
Haavatavus on kõrvaldatud GrapheneOS versioonis 2024030900 ja see mõjutab nutitelefonide ehitusi, milles ei ole kaasatud täiendavat riistvaralist kaitset MTE laienduse põhjal (MTE on hetkel aktiveeritud ainult Pixel 8 ja Pixel 8 Pro seadmetes). Haavatavust saab rekonstrueerida Google Pixel 8 nutitelefonidel, millel on Android 14 QPR2 põhine püsivara. Androidis Pixel 8 seeria nutitelefonide jaoks saab MTE režiimi aktiveerida arendaja suvandites ("Settings / System / Developer options / Memory Tagging Extensions"). MTE aktiveerimine põhjustab mälu tarbimise suurenemist ligikaudu 3%, kuid ei alanda jõudlust.
Allikas: opennet.ru
