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 до актуальной версии, в которой исправлена логика управления памятью.
-
Обновите драйвер ядра до версии r38p1 или выше. Исходный код исправленных драйверов доступен на официальном портале разработчиков Arm.
-
Если вы используете Android, проверьте наличие обновлений безопасности системы (Security Patch Level). Данная уязвимость была устранена в рамках бюллетеня по безопасности Android за декабрь 2022 года.
-
Для систем на базе Linux (Embedded) необходимо пересобрать модуль ядра с использованием обновленных исходных кодов:
git clone https://github.com/ARM-software/mali-display-driver.git
- После обновления проверьте текущую версию драйвера через системный лог:
dmesg | grep -i mali
Временные меры
Если немедленное обновление ядра или прошивки невозможно, рекомендуется принять следующие меры для снижения риска эксплуатации:
- Ограничьте доступ к устройству
/dev/mali*для неавторизованных пользователей и подозрительных приложений.
chmod 660 /dev/mali*
-
Используйте механизмы принудительного контроля доступа (SELinux или AppArmor), чтобы запретить недоверенным процессам взаимодействовать с драйвером GPU.
-
В средах разработки временно отключите аппаратное ускорение GPU для приложений, обрабатывающих внешние данные (например, браузеры), если это допустимо требованиями производительности.
-
Проводите регулярный аудит установленных приложений и блокируйте установку ПО из сторонних (недоверенных) источников, так как эксплуатация уязвимости требует запуска вредоносного кода локально на устройстве.