Съдържание

/oneplus-zero-permission-root-oxygenos/oneplus-zero-permission-root-oxygenos.png

Пълен курс по етично хакерство от нула до експерт

Хаквайте като черношапчести хакери. Тестване за проникване, Kali Linux, WiFi и уеб хакерство, както и хакерският начин на мислене зад тях.

Приложение без никакви разрешения може да поеме пълен контрол над телефон OnePlus. Инсталирате го и то вече разполага с root достъп. OnePlus беше предупредена през април, заплаши изследователя с адвокати и остави уязвимостта отворена в продължение на 159 дни.

Инсталирате приложение. То не иска нищо на екрана — нито едно от запитванията за разрешения, които Android показва, преди дадено приложение да достъпи камерата, контактите или файловете ви. И именно това приложение накрая овладява целия телефон. Не просто част от него, а самия телефон. Root — нивото под останалите приложения, където кодът може да чете съхраняваното от тях, да се зареди в ядрото (kernel) и да изключи всичко, което би могло да го засече.

Обикновено дадено приложение не може да се доближи до нищо от това. Когато го инсталирате, Android го изолира от останалата част от телефона в така наречената изолирана среда untrusted_app. То може да използва камерата, ако му разрешите, да чете собствените си файлове, да комуникира с кратък списък от системни услуги и малко повече. Това е, което стои между произволно приложение и вашите снимки, съобщения и профили.

Root достъпът премахва тези ограничения. Root е най-високопоставеният акаунт в телефона — този, с който работи самата система, и той има достъп до всичко. Именно това цели тази атака. OxygenOS, версията на Android, върху която OnePlus изгражда своите устройства, го предостави чрез два дефекта в кода, написан от самата компания.

Грешките не бяха в самия Android. Те бяха в допълнителния софтуер, който OnePlus добавя над него. Основата на Android се преглежда от много очи, така че изследователят не търси там. Той се насочи директно към услугите, добавени от OnePlus, защото значително по-малко хора ги анализират, и точно там се оказаха и двете уязвимости. OnePlus не е единствената компания в това положение. През август други изследователи показаха единен метод, който издига обикновено приложение до root достъп при телефони на няколко от големите производители на Android, сред които и OnePlus. Моделът всеки път е един и същ: телефонът е по-сигурен от собствените допълнения на производителя.

Тези уязвимости бяха открити от Rasmus Moorats, който търси точно това на личния си OnePlus 15. Той създаде работещия експлойт на по-стар OnePlus 12, който пазеше, за да не се налага да модифицира ежедневния си телефон, а след това инсталира същото непроменено приложение на OnePlus 15. То проработи от първия опит.

Пътят към root започва с малка помощна услуга, която OnePlus изпълнява във фонов режим за събиране на данни за отстраняване на грешки и сривове. Тя работи с root права и приема команди от всяко приложение в телефона, без нито веднъж да попита кой я извиква. Името ѝ е AtlasService. Всяко приложение може да комуникира с нея и това е входната точка.

Една от задачите, които можете да ѝ възложите, е определено събитие. Подавате ѝ текстов низ, тя изгражда път до папка от вашия текст и след това изпълнява команда за задаване на разрешения за тази папка. Командата е следната:

Проблемът е, че текстът никога не се проверява за нищо опасно. Така вместо безобидно име на папка, приложението изпраща точка и запетая, последвани от собствена команда, и телефонът изпълнява тази команда като root. Android ограничава тези текстови стойности до 92 байта, което не е много място, но е напълно достатъчно, за да се укаже на телефона да изпълни скрипт, който приложението вече е записало в собствената си папка за съхранение. С една-единствена заявка приложението вече изпълнява код като root. Присъдата на изследователя за системна услуга, която предава текста на приложение директно в shell команда през 2026 г., беше кратка и директна: „определено е странен избор.“

Тази първа стъпка отвежда приложението до ограничен тип root — съкратен акаунт, който Android нарича dumpstate. Той притежава най-високия потребителски идентификатор (user id), но строги правила го държат ограничен. Въпреки това може да чете и записва в по-голямата част от паметта ви и да достъпва дълъг списък от други системни услуги, а една от тези услуги съдържа втория дефект.

Вторият дефект е по-очевиден от първия и по-лош. OnePlus включва друга фонова услуга, която е част от кода, комуникиращ с чиповете на телефона. Тя има команда, която приема всяка инструкция, която ѝ дадете, и я изпълнява. Командата буквално се казва doShell. Реакцията на изследователя, когато я открива, е лаконична: „защо изобщо съществува това?“ Единствената защита е проверка дали извикващият вече разполага с root права, а първата уязвимост вече му ги е осигурила.

Това, което я прави опасна, е къде попада този shell. Той може да извърши почти всичко, което ядрото на Linux позволява. Може да зареди модул на ядрото (kernel module) — фрагмент код, който работи в самата сърцевина на телефона, като по този начин rootkit се внедрява и остава за постоянно. Може да достъпва хардуера директно под операционната система. Може да надникне в други приложения, докато работят, и да прочете съдържанието им. Това вече не е просто чукане по периферията. Това е вътре в ядрото — сърцевината на телефона, под нивото, където приложенията за сигурност изобщо проверяват.

Проследена от начало до край, атаката протича така:

  • → Приложение без никакви разрешения изпраща модифицирано събитие към AtlasService
  • → AtlasService изпълнява текста на приложението в shell команда като root
  • → Това отвежда приложението в ограничен root shell
  • → Оттам то извиква метода doShell на хардуерната помощна услуга
  • → doShell изпълнява командата си в shell с пълния набор от Linux възможности (capabilities)
  • → Приложението вече има пълен контрол над телефона

Това са двете уязвимости, които той свързва във верига, и те може да не са единствените. Същата услуга за телеметрия разполага с друга функция, която позволява на дадено приложение да регистрира обратно извикване (callback), което услугата след това изпълнява като root. Той я отбеляза като вероятна трета дупка в сигурността и не я проучи допълнително. Една услуга, която се доверява на всеки извикващ — и това е само онова, за което един човек е имал време да прегледа.

Случилото се, след като той докладва уязвимостта, е частта, която превръща софтуерната грешка в история за власт и натиск. Той изпраща и двете уязвимости на OnePlus на 18 април 2026 г. След последващо запитване OnePlus му отговаря на 20 май, потвърждавайки и двата дефекта, като в същото съобщение му диктува какво има и какво няма право да прави със собственото си изследване.

След това идва частта, която звучи по-малко като доклад за грешка и повече като заплаха. Компанията заявява, че тя и единствено тя има правото да решава дали дадена уязвимост изобщо ще бъде оповестена публично. По нейни думи: тя притежава „изключителното крайно право на разкриване на уязвимости.“ Дори дълго след като е предоставена корекция за сигурност, пише тя, изследователят „няма право самостоятелно да съставя и публикува пълни доклади с анализ на уязвимости или технически подробности.“

Тя дори пренебрегна европейските правила. Законодателството на ЕС за киберсигурност, твърдеше тя, позволява на изследователя единствено да подаде уязвимост; то „не дава разрешение на изследователите да разкриват неоторизирано съдържание за уязвимости без предварителното съгласие на засегнатото предприятие“. След това последва офертата: изпратете всичко отново през HackerOne, изчакайте вътрешна проверка, вземете възнаграждение (bounty) и се запишете в списъка с чест на компанията. А под него е редът, който носи истинската тежест: публикувайте без писмено разрешение, независимо дали уязвимостта е отстранена или не, и OnePlus ще „търси съответната правна отговорност в съответствие с приложимите закони“.

OnePlus има обществена страница, която обяснява как трябва да се съобщава за уязвимости в сигурността. Тя обещава да отстранява сериозните в рамките на 90 дни. Тя дори съдържа писмено обещание: изследовател, който играе честно и спазва правилата, няма да бъде даван под съд. Писмото, което той получи, се позоваваше именно на тази страница, докато го заплашваше с единственото нещо, от което самата страница се отказва.

Нищо от това не е ново за OnePlus. Назад през септември 2025 г. друга компания за сигурност откри друг дефект, който позволяваше на всяко приложение на телефона да чете вашите текстови съобщения, включително кодовете за вход, които банките ви изпращат с SMS. В публичния регистър той е вписан като CVE-2025-10184.

Тази фирма дори не можа да го съобщи по нормалния начин. Програмата за възнаграждения на OnePlus идваше със споразумение за конфиденциалност (NDA), което тя отказа да подпише, а съобщенията през други канали не доведоха до нищо. Затова тя го публикува, докато дефектът все още беше широко отворен. Едва тогава OnePlus предприе действия: първите телефони получиха корекция за сигурност на 11 октомври 2025 г., а OPPO последва няколко седмици по-късно.

За root уязвимостите хронологията има обрат, който повечето репортажи пропуснаха. Докато публичната версия беше, че OnePlus не е пуснала корекция за сигурност, компанията всъщност вече беше коригирала уязвимостта в OnePlus 15. Обновяването, OxygenOS версия 16.0.10.500, започна да се разпространява на 18 август. В списъка с промени не се споменава нищо за затваряне на ескалация на привилегии до root; единственият ред за сигурност гласи, че актуализацията „интегрира корекцията за сигурност на Android за август 2026 г.“. Изследователят, който се беше съгласил да не публикува преди 17 септември, изпрати имейл на 11 септември с запитване докъде са стигнали нещата и не получи отговор. Той публикува на 24 септември, 159 дни след първия си доклад.

Тай че картината е разделена. При OnePlus 15 дефектите бяха тихомълком затворени седмици преди да се появи докладът, и собственик с версия 16.0.10.500 или по-нова е извън опасност. За останалите телефони OnePlus, както и за устройствата OPPO, за които самата OnePlus заяви, че са засегнати, компанията все още не е посочила моделите, не е издала CVE и не е публикувала предупреждение. Доколкото показват публичните записи, дефектите никога не са били използвани срещу хора, преди да станат обществено достояние.

И така, какво всъщност да направите по въпроса? Ако притежавате OnePlus 15, тази част е кратка. Отворете Настройки, намерете вашата версия на OxygenOS и проверете дали пише 16.0.10.500 или по-висока. Ако е така, тази двойка дефекти вече е затворена на вашия телефон. Ако не е, актуализацията чака да бъде инсталирана.

Ако носите друг OnePlus или телефон OPPO, все още нямате номер на версия, спрямо който да проверите, тъй като компанията така и не каза кои модели е оставила уязвими. Затова всичко се свежда до единственото нещо, което тази атака не може да пропусне: тя се изпълнява само чрез приложение, което сами инсталирате и отворите. Тя не може да кацне на телефона сама и не може да ви бъде изпратена от разстояние. Някой трябва да ви убеди да я инсталирате и да я стартирате веднъж.

Това е частта, която вие контролирате. Придържайте се към Play Store, където приложението поне минава проверка, преди да стигне до вас. Бъдете внимателни с файловете, които хората ви дават: този от форум, APK файлът от случаен сайт за изтегляне, връзката в съобщение, което казва „инсталирай това“. Това е вратата, от която тази атака се нуждае, и това е единствената врата, която вие контролирате.