Luka w Androidzie 14, którą można wykorzystać poprzez Bluetooth LE

Twórcy projektu GrapheneOS, w ramach którego opracowuje się bezpieczny fork bazy kodu AOSP (Android Open Source Project), zidentyfikowali lukę w stosie Bluetooth platformy Android 14, która może potencjalnie doprowadzić do zdalnego wykonania kodu. Problem wynika z dostępu do już zwolnionego obszaru pamięci (wykorzystaj po zwolnieniu) w kodzie przetwarzania dźwięku przesyłanym przez Bluetooth LE.

Podatność została zidentyfikowana dzięki zintegrowaniu dodatkowej ochrony z wywołaniem hardened_malloc, z wykorzystaniem rozszerzenia ARMv8.5 MTE (MemTag, Memory Tagging Extension), które umożliwia powiązanie tagów z każdą operacją alokacji pamięci i zorganizowanie kontroli poprawności użycia wskaźników blokujących wykorzystanie luk spowodowanych dostępem do już zwolnionych bloków pamięci, przepełnieniem bufora, wywołaniami przed inicjalizacją i użyciem poza bieżącym kontekstem.

Błąd pojawia się od czasu opublikowanej na początku marca aktualizacji Androida 14 QPR2 (Quarterly Platform Release). W głównej bazie kodu platformy Android 14 mechanizm MTE jest dostępny opcjonalnie i nie jest jeszcze domyślnie używany, ale w GrapheneOS został już włączony dla dodatkowej ochrony, co umożliwiło zdiagnozowanie błędu po aktualizacji do Androida 14 QPR2. Błąd powodował awarię podczas korzystania ze słuchawek Bluetooth Samsung Galaxy Buds2 Pro z oprogramowaniem sprzętowym obsługującym ochronę opartą na MTE. Analiza incydentu wykazała, że ​​problem dotyczył dostępu do już zwolnionej pamięci w module obsługi Bluetooth LE, a nie awarii spowodowanej integracją MTE.

Luka została naprawiona w wersji GrapheneOS 2024030900 i dotyczy smartfonów, które nie zawierają dodatkowej ochrony sprzętowej opartej na rozszerzeniu MTE (MTE jest obecnie włączone tylko dla urządzeń Pixel 8 i Pixel 8 Pro). Luka powiela się na smartfonach Google Pixel 8 z systemem Android 14 QPR2. Na smartfonach z systemem Android dla serii Pixel 8 tryb MTE można włączyć w ustawieniach programisty („Ustawienia / System / Opcje programisty / Rozszerzenia tagowania pamięci”). Włączenie MTE zwiększa zużycie pamięci o około 3%, ale nie zmniejsza wydajności.

Źródło: opennet.ru

Dodaj komentarz