CVE-2020-0069

MediaTek Multiple Chipsets

ВЕРОЯТНОСТЬ 0.7%

Дата обнаружения

2021-11-03

Официальное описание

Multiple MediaTek chipsets contain an insufficient input validation vulnerability and have missing SELinux restrictions in the Command Queue drivers ioctl handlers. This causes an out-of-bounds write leading to privilege escalation. This vulnerability was observed chained with CVE-2019-2215 and CVE-2020-0041 under exploit chain "AbstractEmu."

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость заключается в недостаточной проверке входных данных и отсутствии необходимых ограничений SELinux в драйверах Command Queue (cmdq) для нескольких чипсетов MediaTek. Злоумышленник с локальным доступом к устройству может выполнить специально созданный системный вызов ioctl, что приводит к записи за пределами выделенной памяти (out-of-bounds write). Это позволяет повысить привилегии в системе, получить контроль над ядром и обойти механизмы безопасности.

  • Вектор атаки: Локальный (требуется выполнение кода на устройстве).
  • Уровень опасности: Критический (приводит к повышению привилегий).
  • Эксплуатация: Часто использовалась в составе эксплойт-чейна "AbstractEmu" вместе с CVE-2019-2215 и CVE-2020-0041.

Как исправить

Основной метод — установка обновлений безопасности от производителя устройства (OEM/ODM) или поставщика чипсета (MediaTek). Так как уязвимость затрагивает драйверы ядра и код чипсета, исправление должно быть включено в системное обновление (OTA).

  1. Проверьте и установите обновления безопасности Android:

    • Перейдите в НастройкиСистемаОбновление системы.
    • Установите последнее доступное обновление. Патч для CVE-2020-0069 был включен в обновления безопасности Android, начиная с исправлений уровня 2020-03-01 и новее.
  2. Для администраторов, управляющих прошивками (например, в корпоративном парке устройств):

    • Запросите у вендора устройств (Samsung, Xiaomi, Huawei и др.) обновленные образы прошивок, содержащие патчи безопасности за март 2020 года и позже.
    • Убедитесь, что в сборке ядра (/proc/version) используются исправленные исходные коды от MediaTek. Конкретные коммиты исправлений можно найти в репозиториях производителя.
  3. Для сборок AOSP (Android Open Source Project):

    • Убедитесь, что ваша кодовая база включает исправления из android-security-10.0.0_r38 и новее.
    • Патчи для ядра (kernel/) и связанных с чипсетом компонентов должны быть заимствованы из официальных источников MediaTek.

Временное решение

Если немедленная установка обновления невозможна, рассмотрите следующие меры для снижения риска:

  1. Ограничение установки приложений:

    • Разрешайте установку приложений только из доверенных источников (официальный Google Play Маркет для потребительских устройств).
    • На корпоративных устройствах используйте политики MDM (Mobile Device Management) для белого списка разрешенных приложений и блокировки сторонних магазинов.
  2. Активация SELinux в режиме Enforcing:

    • Убедитесь, что SELinux работает в строгом режиме. Это не блокирует саму уязвимость, но ограничивает потенциальный ущерб от её эксплуатации. ```bash

    Проверить текущий режим SELinux

    getenforce

    Должно вернуть "Enforcing"

    ```

  3. Принцип наименьших привилегий:

    • Не предоставляйте пользователям и приложениям избыточные права (root-доступ, отладку по USB для ненадежных ПК).
    • Используйте аппаратно-защищенные контейнеры (TrustZone) для критичных операций, если они поддерживаются чипсетом.
  4. Мониторинг и обнаружение:

    • Внедрите EDR-решения для мобильных устройств, способные обнаруживать аномальное поведение и попытки повышения привилегий.
    • Мониторьте логи ядра (dmesg, logcat) на предмет подозрительных вызовов ioctl к драйверам cmdq.

Важно: Временные решения лишь снижают вероятность успешной атаки. Полное устранение риска возможно только путем установки официального патча от производителя.