Цепочка эксплойтов с нулевым к... Заметка
RSS Проект Ноль

Цепочка эксплойтов с нулевым кликом для Pixel 9, часть 2: Взлом песочницы с помощью большой волны

С появлением потенциального эксплойта RCE в Dolby Unified Decoder, казалось разумным посмотреть, какие драйверы ядра Linux могут быть доступны из полученного контекста пользовательского пространства, контекста mediacodec. Согласно документации AOSP, контекст mediacodec SELinux предназначен для ограниченного (т.е. изолированного) контекста, где используются небезопасные программные декодеры. Тем не менее, используя мой инструмент DriverCartographer, я обнаружил интересный драйвер устройства, /dev/bigwave, который был доступен из контекста mediacodec SELinux. BigWave - это аппаратное обеспечение, присутствующее на Pixel SOC, которое ускоряет задачи декодирования AV1, что объясняет, почему оно доступно из контекста mediacodec. Как неоднократно подтверждалось предыдущими исследованиями, драйверы Android для аппаратных устройств являются лучшим местом для поиска мощных ошибок локального повышения привилегий. Драйвер BigWave не стал исключением - за пару часов аудита кода я обнаружил три отдельные ошибки, в том числе одну, которая была достаточно мощной, чтобы выйти из песочницы mediacodec и получить произвольное чтение/запись в ядре на Pixel 9.