Neseniai GrapheneOS projekto kūrėjai paskelbė naujieną apie v„Android 14“ pažeidžiamumas aptiktas „Bluetooth LE“ krūvoje, klaida atsirado dėl atminties sugadinimo, įdiegto Android 14 QPR2.
Tiems, kurie nežino apie GrapheneOS, turėtumėte žinoti, kad tai yra projektas, kuris kuria saugią AOSP kodų bazės versiją, ir būtent jie aptiko Android 14 „Bluetooth“ paketo pažeidžiamumą, kurį, jų teigimu, galima išnaudoti. ir leidžia nuotoliniu būdu vykdyti kodą.
Kalbant apie pažeidžiamumą, GrapheneOS kūrėjai mini, kad tai atsiranda dėl prieigos prie anksčiau atlaisvintos atminties srities, kuris žinomas kaip „nenaudoti po to“. Problema slypi kode, atsakingame už garso, perduodamo per Bluetooth LE, apdorojimą.
Mūsų „Pixel 8“ ir „Pixel 8 Pro“ aparatinės įrangos atminties žymėjimo palaikymas aptiko atminties sugadinimo klaidą, įdiegtą „Android 14 QPR2“, skirtoje „Bluetooth LE“. Šiuo metu tiriame, kaip ištaisyti arba laikinai išjungti naujai pristatytą funkciją kaip sprendimą.
Šio pažeidžiamumo nustatymas iš dalies dėl to, kad įdiegta papildoma apsauga naudojant hardened_malloc funkciją, kuris naudoja ARMv8.5 MTE plėtinį. Šis plėtinys leidžia priskirti etiketes kiekvienai atminties paskirstymo operacijai ir atlikti patikrinimus, kad būtų užtikrintas teisingas rodyklių naudojimas, taip išvengiant pažeidžiamumų, susijusių su prieiga prie atlaisvintos atminties, buferio perpildymo, iškvietimų į funkcijas prieš jų inicijavimą ir naudojimo už dabartinės ribų. kontekste.
Ši klaida pasirodė atnaujinus į Android 14 QPR2 (ketvirčio platformos versija), išleista kovo pradžioje. Pagrindiniame „Android 14“ kodo leidime MTE funkcija pasiekiama kaip parinktis, bet dar neįjungta pagal numatytuosius nustatymus.
Tačiau „GrapheneOS“ sistemoje buvo suaktyvinta MTE apsauga, kad būtų užtikrintas papildomas saugos sluoksnis, o tai leido nustatyti klaidą po „Android 14 QPR2“ atnaujinimo. Dėl šios klaidos įvyko gedimų naudojant „Samsung Galaxy Buds2 Pro Bluetooth“ ausines su programine įranga, kuri įgalino MTE pagrįstą apsaugą. Tolesnė įvykio analizė atskleidė, kad problema buvo susijusi su atlaisvintos atminties prieiga „Bluetooth LE“ tvarkyklėje, o ne dėl pačios MTE funkcijos integravimo.
Iš galimų sprendimų pusės pažeidžiamumui, GrapheneOS kūrėjai Jie mini, kad šio proceso atminties žymėjimo išjungimas nėra sprendimas priimtina alternatyva net ir trumpuoju laikotarpiu, nes tai yra reikšmingas atakos paviršius, nepaisant to, ar ši klaida yra išnaudojama, ar ne. Taip nutinka tik kai kuriuose Bluetooth LE įrenginiuose, o ne visuose Bluetooth įrenginiuose.
Minėtas pažeidžiamumas buvo išspręstas m la GrapheneOS versija 2024030900. Svarbu tai, kad šis pažeidžiamumas turi įtakos išmaniųjų telefonų versijoms, kuriose nėra papildomos aparatinės įrangos apsaugos, pagrįstos MTE plėtiniu. Šiuo metu MTE plėtinys įgalintas tik „Pixel 8“ ir „Pixel 8 Pro“ įrenginiuose.
Sukūrėme pataisą, skirtą „Android 2 QPR14“ naudojimo po išleidimo klaidai, kurią atradome naudodami „Bluetooth LE“. Mūsų prioritetas yra netrukus išleisti „GrapheneOS“ versiją su mūsų pataisymu ir pranešime apie tai kaip „Android“ saugos klaidą. Tai taip pat turėtų išspręsti BLE garso regresijas.
Pažeidžiamumas pastebėtas „Google Pixel 8“ išmaniuosiuose telefonuose su programine įranga, pagrįsta „Android 14 QPR2“. „Pixel 8“ serijos įrenginiams kūrėjo nustatymuose galima įjungti MTE režimą. Tai galite padaryti apsilankę „Nustatymai / Sistema / Kūrėjo parinktys / Atminties ženklinimo plėtiniai“. Svarbu pažymėti, kad įjungus MTE, atminties suvartojimas padidėja maždaug 3%, tačiau tai neturi įtakos įrenginio veikimui.
Pagaliau taip jus domina galimybė apie tai sužinoti daugiau, galite patikrinti išsami informacija šioje nuorodoje.