
Эксплойт и описание для установленного приложения для повышения привилегий до root через CVE-2024-48336 (Magisk Bug #8279), Privileges Escalation / Arbitrary Code Execution Vulnerability
Это эксплойт для уязвимости CVE-2024-48336 в приложении Magisk, который позволяет локальному приложению незаметно получить root-доступ без согласия пользователя.
Уязвимость была первоначально сообщена @vvb2060 и PoC выполнено @canyie. Она исправлена в Canary 27007.
Демонстрационное видео эксплуатации этой уязвимости для незаметного получения root-привилегий и предоставления root любому приложению: https://github.com/canyie/MagiskEoP/blob/main/screen-20220302-093745.mp4
Шаги для воспроизведения этой уязвимости:
Название: Уязвимость произвольного выполнения кода в приложении Magisk
Псевдоним: Уязвимость повышения привилегий Magisk
Продукт: Magisk
CVE: CVE-2024-48336
Сообщивший: @vvb2060
Дата первоначального сообщения: 2024-08-01
Дата исправления: 2024-08-21
Дата раскрытия: 2024-08-24
Затронутые версии: Manager v7.0.0 ~ Canary 27006
Первая исправленная версия: Canary 27007
Отчет об ошибке: https://github.com/topjohnwu/Magisk/issues/8279
Патч CL: https://github.com/topjohnwu/Magisk/commit/c2eb6039579b8a2fb1e11a753cea7662c07bec02
Внесший ошибку CL: https://github.com/topjohnwu/Magisk/commit/920b60da19212dd8d54d27ada77a30067ce50de6
Класс ошибки: Небезопасная динамическая загрузка внешнего кода
Перечень слабостей:
Функция install() в ProviderInstaller.java в приложении Magisk до canary-версии 27007 не проверяет приложение GMS перед его загрузкой, что позволяет локальному недоверенному приложению без дополнительных привилегий незаметно выполнить произвольный код в приложении Magisk и повысить привилегии до root с помощью поддельного пакета, также известного как Bug #8279. Для эксплуатации не требуется взаимодействие с пользователем.
Старые версии Android не поддерживают некоторые алгоритмы. Чтобы Magisk работал корректно на этих платформах, он пытается загрузить conscrypt из GMS с помощью вызова createCallingContext(). Подробнее по этой ссылке: https://t.me/vvb2060Channel/692
Однако GMS не всегда предустановлены на всех устройствах. Magisk предполагает, что загрузка кода из GMS всегда безопасна, но злоумышленники могут создать поддельное вредоносное приложение с тем же именем пакета. При запуске приложения Magisk вредоносный код будет выполнен в приложении Magisk. Поскольку приложение Magisk всегда имеет root-доступ, это позволяет злоумышленникам незаметно получить root-доступ и выполнить произвольный код с root-привилегиями без согласия пользователя.
Примечание: Эта проблема исправлена в Canary 27007 путем проверки того, что GMS является системным приложением перед загрузкой. Однако все еще возможно эксплуатировать эту проблему на устройствах с предустановленными GMS, но с нарушенными реализациями проверки подписи (например, CorePatch).
Примечание 2: Хотя в официальном приложении Magisk присутствует исправление для этой проблемы, существует множество других экземпляров аналогичного кода в других приложениях без соответствующего исправления, таких как это и это. Это потенциально позволяет выполнить произвольный код в уязвимых приложениях и потенциально может позволить злоумышленникам снова получить root-доступ, если он предоставлен атакуемым приложениям.