⚡️ EM-глитчинг: как получить root на Google TV Streamer 4K с помощью физики Команда Raelize (выступавшая с этим докладо
Команда Raelize (выступавшая с этим докладом на hardwear.io NL 2025) опубликовала крутой разбор аппаратной атаки на новый Google TV Streamer — преемник Chromecast на Android 14. С помощью направленных электромагнитных импульсов (EMFI) исследователи смогли «пробить» ядро Linux и повысить привилегии с обычного adb shell до root.
В чем суть атаки?
Внутри приставки стоит 4-ядерный чип Mediatek MT8696 (Cortex-A55, 1.8 ГГц). Ребята написали эксплойт, который в бесконечном цикле пытается выполнить системный вызов setresuid(0, 0, 0) от имени непривилегированного пользователя shell (uid 2000). В нормальных условиях ядро (здесь используется дефолтный Android GKI) блокирует этот запрос на этапе проверки ns_capable_setid().
Но в дело вступает физика: вплотную к вскрытому чипу разместили EMFI-зонд, который асинхронно «бомбардировал» процессор мощными электромагнитными импульсами. Один удачный импульс физически искажает инструкцию условного перехода прямо в процессоре. В результате ядро проскакивает проверку прав, вызывает функцию commit_creds() и выдает процессу uid = 0. После этого эксплойт успешно поднимает telnetd с рутовым доступом.
🛡 Defense-in-depth в действии
Самое интересное: на этом взлом не заканчивается. Несмотря на получение uid = 0, эшелонированная защита Android отработала отлично. Процесс остался заперт в жестком контексте SELinux (u:r:shell:s0 в режиме Enforcing). Читать память ядра или критичные разделы eMMC все еще нельзя. Для полного захвата устройства (Full Device Compromise) потребуется еще один аппаратный глитч или софтверный эксплойт для обхода SELinux.
Ключевые выводы:
🔹 Аппаратный глитчинг можно успешно проводить прямо на работающей ОС (не уходя в bootloader), даже на современных чипах с частотой 1.8 ГГц.
🔹 Искажения всего одной инструкции достаточно, чтобы полностью сломать программную модель безопасности.
🔹 В качестве бонуса — аналогичным методом исследователям удалось обойти проверку check_syslog_permissions и слить дамп syslog из закрытой области ядра.
🔗 Читать технический разбор в оригинале: https://raelize.com/blog/setresuid-glitching-google-tv-streamer-from-adb-to-root/
👉 @thehaking