CVE-2022-38181

Arm Mali Graphics Processing Unit (GPU)

ВЫСОКАЯ ВЕРОЯТНОСТЬ

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

2023-03-30

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

Arm Mali GPU Kernel Driver contains a use-after-free vulnerability that may allow a non-privileged user to gain root privilege and/or disclose information.

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

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

CVE-2022-38181 представляет собой критическую уязвимость типа Use-After-Free (использование памяти после освобождения) в драйвере ядра графического процессора Arm Mali. Проблема возникает из-за некорректной обработки операций отображения памяти (memory mapping) в подсистеме управления памятью GPU.

Злоумышленник с низкими привилегиями может использовать специально сформированные системные вызовы для манипуляции счетчиками ссылок на объекты памяти. Это позволяет добиться ситуации, когда ядро продолжает использовать объект, который уже был освобожден. В результате атакующий может: * Выполнить произвольный код с правами ядра (LPE — Local Privilege Escalation). * Получить полный доступ к оперативной памяти устройства (Root доступ). * Обойти механизмы изоляции приложений (Sandbox).

Уязвимость затрагивает драйверы серий Valhall (от r19p0 до r38p0) и Bifrost (от r0p0 до r38p0).

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

Основным и единственным надежным способом устранения уязвимости является обновление драйвера ядра Arm Mali до актуальной версии, в которой исправлена логика управления памятью.

  1. Обновите драйвер ядра до версии r38p1 или выше. Исходный код исправленных драйверов доступен на официальном портале разработчиков Arm.

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

  3. Для систем на базе Linux (Embedded) необходимо пересобрать модуль ядра с использованием обновленных исходных кодов:

git clone https://github.com/ARM-software/mali-display-driver.git

  1. После обновления проверьте текущую версию драйвера через системный лог:
dmesg | grep -i mali

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

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

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

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

  2. В средах разработки временно отключите аппаратное ускорение GPU для приложений, обрабатывающих внешние данные (например, браузеры), если это допустимо требованиями производительности.

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