Luki w systemie OxygenOS 16 umożliwiają aplikacjom uzyskanie uprawnień roota na telefonach marek OnePlus i Oppo

Złośliwa aplikacja zainstalowana na telefonie OnePlus może uzyskać uprawnienia administratora bez proszenia o żadne zezwolenie. Badacz bezpieczeństwa Rasmus Moorats wykrył dwie luki w systemie OxygenOS, które pozwalają aplikacji na wyjście poza piaskownicę systemu Android i przejęcie kontroli nad częściami telefonu, do których nigdy nie powinna mieć dostępu. Firma OnePlus potwierdziła mu, że luki te dotyczą wielu urządzeń marek OnePlus i Oppo z różnymi wersjami oprogramowania, jednak nie udostępniła pełnej listy.
Moorats opracował lukę na starszym modelu OnePlus 12 Pro, który wcześniej odblokował i zrootował w celach badawczych. Następnie zainstalował tę samą, niezmodyfikowaną aplikację na swoim telefonie OnePlus 15 z systemem OxygenOS 16.0.3.503. Telefon ten nie był zrootowany ani zmodyfikowany, a luka zadziałała już przy pierwszej próbie. Aby atak zadziałał, użytkownik musiałby zainstalować i uruchomić złośliwą aplikację, jednak aplikacja ta nie musiałaby żądać żadnych uprawnień.
Atak wykorzystuje kolejno dwie luki. Pierwsza z nich występuje w AtlasService, usłudze działającej w tle, która gromadzi informacje diagnostyczne i dotyczące debugowania. Działa ona z uprawnieniami administratora, ale nie sprawdza, która aplikacja wysyła do niej żądanie. Moorats odkrył, że aplikacja może sprawić, iż narzędzie do debugowania audio potraktuje część tego żądania jako polecenie i uruchomi je z uprawnieniami administratora. System Android nadal ogranicza możliwości wynikowego procesu, dlatego atak kieruje się następnie na inny komponent urządzenia OnePlus o nazwie olc2. Usługa ta może wykonywać polecenia powłoki i sprawdza jedynie, czy żądanie pochodzi z procesu o uprawnieniach roota. Proces utworzony za pośrednictwem AtlasService przechodzi tę kontrolę, co pozwala mu na wykonywanie poleceń zapewniających znacznie szerszą kontrolę nad telefonem.
Luka działała na telefonach z różnymi wersjami jądra, co skłoniło Mooratsa do przypuszczenia, że błędy mogą występować w całym systemie OxygenOS 16. Po raz pierwszy zgłosił je firmie OnePlus 18 kwietnia, a po otrzymaniu braku odpowiedzi podjął dalsze działania. Firma potwierdziła istnienie tych luk w e-mailu z 20 maja i poinformowała, że zaplanowano wprowadzenie poprawek. W tej samej odpowiedzi firma OnePlus stwierdziła, że wyłącznie ona może decydować o opublikowaniu szczegółów technicznych, nawet po wydaniu poprawek. Argumentowała również, że europejskie przepisy dotyczące cyberbezpieczeństwa nie zezwalają na publikację bez jej zgody, i ostrzegła przed podjęciem kroków prawnych, jeśli autor zdecyduje się na publikację.
Firma OnePlus poprosiła później o więcej czasu na przygotowanie poprawek, a pan Moorats zgodził się nie publikować informacji przed 17 września. Pomimo tego przedłużenia terminu jego prośby o aktualizacje wysłane w lipcu i wrześniu pozostały bez odpowiedzi. Opublikował swoje ustalenia 24 września, ponad pięć miesięcy po złożeniu pierwszego zgłoszenia. W opisie wyjaśniono, w jaki sposób luki te współdziałają, oraz zamieszczono fragmenty kodu z aplikacji testowej. Od tego czasu autor zweryfikował, że wersja OxygenOS 16.0.10.500(EX01) usuwa obie luki w modelu OnePlus 15.






