Специалисты Rapid7 обнаружили уязвимость в нескольких версиях OxygenOS (ОС на базе Android, использующейся в устройствах OnePlus). Баг позволяет любому установленному приложению получать доступ к данным и метаданным SMS-сообщений без разрешений и взаимодействия с пользователем.
Проблема получила идентификатор CVE-2025-10184, и исследователи предупреждают, что она до сих пор не исправлена. Производитель долгое время не отвечал на сообщения специалистов Rapid7, которые пытались наладить контакт с мая 2025 года. В итоге эксперты приняли решение обнародовать технические детали уязвимости вместе с proof-of-concept эксплоитом.
Уязвимость возникла из-за того, что OnePlus изменил стандартный пакет Android Telephony, добавив дополнительные экспортируемые контент-провайдеры, вроде PushMessageProvider, PushShopProvider и ServiceNumberProvider. В манифесте этих провайдеров не объявлено разрешение на запись для READ_SMS, оставляя их открытыми для любого приложения по умолчанию, даже если у него нет связанных с SMS разрешений.
Более того, пользовательский ввод не очищается, что позволяет осуществлять так называемые слепые SQL-инъекции для восстановления содержимого SMS из БД устройства, брутфорсом извлекая по одному символу за раз.
«Повторяя этот алгоритм для каждого символа в каждой строке из подзапроса, можно извлечь содержимое базы данных — возвращаемое значение метода update покажет, угадали вы символ или нет», — объясняют в Rapid7.
Таким образом, невзирая на то, что разрешение на чтение SMS настроено правильно, разрешение на запись — нет, и это позволяет извлечь SMS-контент при выполнении определенных условий:
- таблица должна содержать хотя бы одну строку, чтобы update() мог вернуть результат «rows changed»;
- провайдер должен разрешать insert(), чтобы атакующий имел возможность создать фиктивную строку для операций, если таблица пуста;
- таблица sms должна находиться в том же файле SQLite, потому что внедренный подзапрос должен иметь к ней доступ.
Уязвимость затрагивает все версии OxygenOS с 12-й по новейшую 15-ю, построенную на Android 15. Исследователи сообщают, что протестировали и подтвердили наличие уязвимости в OnePlus 8T и 10 Pro с различными версиями OxygenOS и номерами Telephony-пакетов. Подчеркивается, что другие устройства тоже могут быть уязвимы.
Устройство/Модель | Версия пакета | Версия OxygenOS | Номер сборки |
OnePlus 8T / KB2003 | 3.4.135 | 12 | KB2003_11_C.33 |
OnePlus 10 Pro 5G / NE2213 | 14.10.30 | 14 | NE2213_14.0.0.700(EX01) |
OnePlus 10 Pro 5G / NE2213 | 15.30.5 | 15 | NE2213_15.0.0.502(EX01) |
OnePlus 10 Pro 5G / NE2213 | 15.30.10 | 15 | NE2213_15.0.0.700(EX01) |
OnePlus 10 Pro 5G / NE2213 | 15.40.0 | 15 | NE2213_15.0.0.901(EX01) |
«Хотя номера сборок в приведенной таблице специфичны для тестовых устройств, поскольку проблема затрагивает основной компонент Android, мы ожидаем, что эта уязвимость влияет и на другие устройства OnePlus с указанными версиями OxygenOS. То есть это не аппаратно-специфичная проблема», — объясняют исследователи.
Вскоре после публикации отчета Rapid7 представители OnePlus признали наличие проблемы и сообщили, что уже занимаются ее изучением.
До выхода патчей пользователям рекомендуется свести количество установленных приложений на устройстве OnePlus к минимуму, доверять только проверенным разработчикам и отказаться от использования двухфакторной аутентификации через SMS в пользу OTP-приложений (например, Google Authenticator).
Поскольку пока SMS на устройствах OnePlus неправильно изолированы, конфиденциальные коммуникации рекомендуется вести только в приложениях со сквозным шифрованием.