Найновіші флагмани Samsung, Xiaomi, Oppo та OnePlus, усі з актуальними оновленнями безпеки, виявилися вразливими до атаки через звичайний непривілейований застосунок. І проблема не в самому Android: критичні вразливості знайшли у програмному забезпеченні, яке виробники додають до системи та яке має глибокий доступ до пристрою.
Лукас Маар, дослідник безпеки з Calif, виявив серйозне слабке місце в Android-пристроях. Вразливим виявилося програмне забезпечення, яке додають виробники смартфонів, і за певних умов воно дозволяє зловмиснику отримати root-доступ на пристроях найбільших брендів.
Дослідник продемонстрував, як звичайний непривілейований застосунок без жодних заявлених дозволів може отримати повний контроль над Android-пристроєм.
Стратегія атаки, що отримала назву «OEMpocalypse Now», дозволила створити три ланцюжки експлойтів. Вони націлені на флагмани Samsung щонайменше від серії Galaxy S23 до Galaxy S26, а також нові моделі Galaxy Z, більшість смартфонів Xiaomi середнього та флагманського класу й сучасні флагмани Oppo, OnePlus та Realme.
Експлойти не прив’язані до конкретної версії Android, чипсета, версії ядра чи навіть моделі пристрою. Причина в тому, що багато смартфонів одного виробника використовують однакові додаткові програмні компоненти поверх Android, наприклад One UI, HyperOS або ColorOS, а також специфічні для конкретного виробника драйвери ядра.
«Основна ідея полягає в тому, щоб атакувати лише код, написаний виробниками оригінального обладнання (OEM), такими як Samsung та Xiaomi», – пояснив Маар у першій частині дослідження. «Жоден із драйверів не справляв враження, що його розробляли з урахуванням можливості взаємодії зі зловмисником».
Root-доступ надає зловмиснику майже повний контроль над пристроєм та даними на ньому. Він дозволяє обійти стандартну модель дозволів Android і змінювати системні параметри, до яких звичайний користувач не має доступу. У певних сценаріях це потенційно може призвести навіть до пошкодження обладнання.
Дослідник не оприлюднив код proof-of-concept і показав лише кілька відеозаписів, які підтверджують успішний злам флагманських смартфонів. Маар планує продовжити серію досліджень і детальніше розібрати кожен ланцюжок експлойтів окремо для різних виробників.
Сторонні Android-застосунки працюють в ізольованому середовищі під назвою untrusted_app. За нормальних умов вони не можуть безпосередньо взаємодіяти з драйверами ядра й тим більше не повинні мати можливості отримати root-доступ.
Маар описує експлойт untrusted_app-to-root, який, за його словами, демонструє майже 100-відсоткову надійність незалежно від активних механізмів захисту або налаштувань Android. Крім того, його можна адаптувати з мінімальними змінами під різні версії ядра, OEM-виробників, чипсети та конкретні моделі пристроїв.
Перший – вихід із «пісочниці». Android уже має багато механізмів, через які програми та системні компоненти можуть взаємодіяти між собою за допомогою так званої міжпроцесної взаємодії (IPC). Програмне забезпечення OEM-виробників додатково розширює цю поверхню атаки власними застосунками, службами та фоновими процесами, кожен із яких може мати власні IPC-інтерфейси. Деякі з цих компонентів також можуть взаємодіяти безпосередньо з драйверами ядра.
Однієї логічної помилки в одному з таких OEM-обробників IPC, наприклад відсутності перевірки того, хто викликає функцію, помилково експортованого компонента або неперевіреного шляху до файлу, достатньо, щоб перетнути межу привілеїв, пояснює Маар.
Дослідник використав помилку, яка повністю знаходиться в логіці користувацького програмного забезпечення OEM-виробника, щоб перейти від звичайного untrusted_app до процесу, що належить виробнику й має значно ширші системні привілеї.
На другому етапі дослідник використав вразливість типу use-after-free у специфічному для OEM-виробника драйвері ядра. Драйвер продовжував зберігати посилання на певну сторінку пам’яті навіть після того, як ядро вже звільнило її для повторного використання. Це дозволило скористатися застарілим посиланням для доступу до даних ядра та їх модифікації.
«Потім я реалізував цю стратегію тричі, по одному разу для кожного великого виробника Android, і в процесі виявив кілька вразливостей», – розповів дослідник.
Кожен із тестових застосунків не вимагав жодних заявлених дозволів. Їх перевірили на Samsung Galaxy S26 Ultra, Galaxy S26 і Galaxy S23, Xiaomi 17, Oppo Find X9 Ultra та OnePlus Ace 6 Ultra.
Google Pixel, який використовує Android без уразливих OEM-компонентів, на які націлена ця атака, не піддається описаному методу. Для отримання root-доступу на Pixel знадобилася б більш універсальна вразливість, наприклад у самому ядрі Linux.
У дослідженні також попереджають, що вразливості класу use-after-free складно нейтралізувати після того, як вони потрапляють у код ядра. Для усунення таких проблем необхідно перевіряти драйвери, які відображають сторінки пам’яті, що належать ядру, в адресний простір користувача або пристрою, та гарантувати, що всі такі відображення припиняються до того, як відповідна сторінка пам’яті буде звільнена.