CVE-2022-22706

Arm Mali Graphics Processing Unit (GPU)

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

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

2023-03-30

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

Arm Mali GPU Kernel Driver contains an unspecified vulnerability that allows a non-privileged user to achieve write access to read-only memory pages.

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

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

CVE-2022-22706 представляет собой критическую ошибку в логике управления памятью в драйвере ядра Arm Mali GPU (Kernel Driver). Уязвимость возникает из-за некорректной обработки дескрипторов памяти при выполнении определенных системных вызовов.

Основная проблема заключается в возможности повышения привилегий: непривилегированный локальный пользователь может получить доступ на запись к страницам памяти, которые помечены как «только для чтения» (read-only). Это позволяет злоумышленнику модифицировать код исполняемых процессов или системные данные, что ведет к полному компрометации устройства и получению прав уровня ядра (root).

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

Основным способом устранения уязвимости является обновление драйвера ядра Mali GPU до актуальной версии, в которой исправлена ошибка валидации прав доступа к памяти.

  1. Определите текущую версию драйвера и используемую архитектуру (Valhall или Bifrost). Уязвимость затрагивает версии до r36p0.

  2. Скачайте исправленную версию драйвера (r36p0 или выше) с официального портала Arm Developer.

  3. Интегрируйте патч в исходный код ядра вашего устройства. Если вы используете готовый дистрибутив (например, Android), проверьте наличие обновлений безопасности от производителя (Security Patch Level от января 2022 года и позже).

  4. Для самостоятельной сборки драйвера из исходников выполните пересборку модуля ядра:

make -C /lib/modules/$(uname -r)/build M=/path/to/mali_driver modules

  1. Установите обновленный модуль:
insmod mali_kbase.ko

Временные меры

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

  1. Ограничьте доступ к устройству /dev/mali* для непривилегированных пользователей, если это не нарушает работу критических графических приложений:
chmod 660 /dev/mali*

  1. Используйте механизмы принудительного контроля доступа (SELinux), чтобы ограничить возможности процессов, взаимодействующих с драйвером GPU. Убедитесь, что контексты приложений имеют минимально необходимые разрешения.

  2. Изолируйте выполнение потенциально опасного кода (например, браузеров или сторонних приложений) в песочницах, чтобы предотвратить прямой доступ к интерфейсам драйвера ядра.

  3. Настройте аудит системных вызовов для мониторинга подозрительной активности, связанной с отображением памяти (mmap) через драйвер Mali.