Уязвимости в OxygenOS 16 позволяют приложениям получать root-доступ на телефонах OnePlus и Oppo

Вредоносное приложение, установленное на смартфоне OnePlus, может получить root-доступ, не запрашивая ни одного разрешения. Исследователь в области безопасности Расмус Мооратс обнаружил в OxygenOS две уязвимости, позволяющие приложению выйти за пределы «песочницы» Android и получить контроль над частями телефона, к которым оно никогда не должно было иметь доступа. Компания OnePlus подтвердила ему, что эти уязвимости затрагивают множество устройств OnePlus и Oppo с различными версиями программного обеспечения, однако полный список не был предоставлен.
Moorats разработал эксплойт на старой модели OnePlus 12 Pro, которую он ранее разблокировал и получил root-права для проведения исследований. Затем он установил то же самое немодифицированное приложение на свой OnePlus 15 под управлением OxygenOS 16.0.3.503. На этом телефоне не было root-прав и никаких модификаций, и эксплойт сработал с первой попытки. Для того чтобы атака сработала, пользователю необходимо установить и запустить вредоносное приложение, однако приложение не будет запрашивать никаких разрешений.
Атака использует две уязвимости последовательно. Первая находится в AtlasService — фоновом сервисе, собирающем диагностическую и отладочную информацию. Он работает с правами root, но не проверяет, какое приложение отправляет ему запрос. Моратс обнаружил, что приложение может заставить инструмент отладки аудио интерпретировать часть этого запроса как команду и запустить её с правами root. Android по-прежнему ограничивает возможности создаваемого в результате процесса, поэтому атака затем переключается на другой компонент OnePlus под названием olc2. Эта служба может выполнять команды оболочки и проверяет лишь то, исходит ли запрос от процесса с правами root. Процесс, созданный через AtlasService, проходит эту проверку, что позволяет ему выполнять команды, обеспечивающие гораздо более широкий контроль над телефоном.
Уязвимость проявилась на телефонах с различными версиями ядра, что заставило г-на Муратса предположить, что эти уязвимости могут быть распространены на всю версию OxygenOS 16. Впервые он сообщил об этом компании OnePlus 18 апреля и повторно обратился к ней, не получив ответа. Компания подтвердила наличие уязвимостей в электронном письме от 20 мая и сообщила, что исправления запланированы. В том же ответе компания OnePlus заявила, что только она сама может принимать решение о публикации технических деталей, даже после выпуска исправлений. Кроме того, она указала, что европейские правила кибербезопасности не допускают публикации без её согласия, и предупредила о судебном преследовании в случае, если он всё же решит это сделать.
Позже компания OnePlus попросила дополнительное время для подготовки исправлений, и г-н Муратс согласился не публиковать информацию до 17 сентября. Несмотря на эту отсрочку, его запросы об обновлениях, направленные в июле и сентябре, остались без ответа. Он опубликовал свои выводы 24 сентября, более чем через пять месяцев после первоначального сообщения. В статье объясняется, как эти уязвимости взаимодействуют между собой, и приводятся фрагменты кода из тестового приложения. С тех пор он подтвердил, что версия OxygenOS 16.0.10.500(EX01) устраняет обе уязвимости на смартфоне OnePlus 15.






