Исследователи из компании Сheckpoint выявили три уязвимости (CVE-2021-0661, CVE-2021-0662, CVE-2021-0663) в прошивках DSP-чипов компании MediaTek, а также уязвимость в прослойке для обработки звука MediaTek Audio HAL (CVE-2021-0673). В случае успешной эксплуатации уязвимостей атакующий может организовать подслушивание за пользователем из непривилегированного приложения для платформы Android.
В 2021 году на компанию MediaTek приходится примерно 37% поставок специализированных чипов для смартфонов и SoC (по другим данным во втором квартале 2021 года доля MediaTek среди производителей DSP-чипов для смартфонов составляла 43%). В том числе DSP-чипы MediaTek используются в флагманских смартфонах компанией Xiaomi, Oppo, Realme и Vivo. Чипы MediaTek, основанные на микропроцессоре с архитектурой Tensilica Xtensa, используются в смартфонах для совершения таких операций как обработка звука, изображений и видео, в вычислениях для систем дополненной реальности, компьютерного зрения и машинного обучения, а также в реализации режима быстрой зарядки.
В ходе обратного инжиниринга прошивок для DSP-чипов MediaTek, основанных на платформе FreeRTOS, было выявлено несколько способов выполнения кода на стороне прошивки и получения контроля над операциями в DSP через отправку специально оформленных запросов из непривилегированных приложений для платформы Android. Практические примеры атак продемонстрированы на смартфоне
Xiaomi Redmi Note 9 5G, оснащённом SoC
MediaTek MT6853 (Dimensity 800U). Отмечается, что OEM-производители уже получили исправления уязвимостей в октябрьском обновлении прошивок MediaTek.
Среди атак, которые можно провести, выполнив свой код на уровне прошивки DSP-чипа:
- Повышение привилегий и обход системы разграничения доступа – незаметный захват данных, таких как фотографии, видео, записи звонков, данные с микрофона, GPS и т.п.
- Отказ в обслуживании и совершение вредоносных действий – блокирование доступа к информации, отключение защиты от перегрева при быстрой зарядке.
- Скрытие вредоносной активности – создание полностью незаметных и неудаляемых вредоносных компонентов, выполняемых на уровне прошивки.
- Прикрепление меток для слежки за пользователем, например, добавление незаметных меток к изображению или видео для последующего определения связи опубликованных данных с пользователем.
Детали одной уязвимости пока не раскрываются, но три остальные уязвимости вызваны некорректной проверкой границ при обработке IPI-сообщений (Inter-Processor Interrupt), направляемых звуковым драйвером audio_ipi к DSP. Указанные проблемы позволяют вызвать контролируемое переполнение буфера в предоставляемых прошивкой обработчиках (AUDIO_DSP_TASK_MSGA2DSHAREMEM), в которых сведения о размере передаваемых данных брались из поля внутри пакета IPI, без проверки фактического размера, размещённого в разделяемой памяти.
Для обращения к драйверу в ходе экспериментов использовались прямые ioctls-вызовы или библиотека /vendor/lib/hw/audio.primary.mt6853.so, которые недоступны обычным Android-приложениям. Тем не менее, исследователи нашли обходной путь отправки команд, основанный на использовании отладочных параметров, доступных сторонним приложениям. Указанные параметры могут применяться через обращение к Android-сервису AudioManager для атаки на библиотеки MediaTek Aurisys HAL (libfvaudio.so), предоставляющие вызовы для взаимодействия с DSP. Для блокирования данного обходного метода компания MediaTek удалила возможность использования команды PARAM_FILE через AudioManager.