CVE-2023-4211
Arm Mali GPU Kernel Driver
2023-10-03
Arm Mali GPU Kernel Driver contains a use-after-free vulnerability that allows a local, non-privileged user to make improper GPU memory processing operations to gain access to already freed memory.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-4211 представляет собой критическую уязвимость класса Use-After-Free (использование памяти после освобождения) в драйвере ядра графического процессора Arm Mali.
Проблема возникает из-за некорректной обработки операций с памятью GPU. Локальный непривилегированный пользователь может инициировать манипуляции с памятью, которые позволяют получить доступ к уже освобожденным участкам памяти. В контексте ядра это приводит к следующим рискам: * Повышение привилегий: Злоумышленник может выполнить произвольный код с правами ядра (Kernel mode). * Раскрытие информации: Доступ к конфиденциальным данным других процессов, находящимся в памяти. * Нарушение целостности: Возможность модификации структур данных ядра.
Как исправить
Основным способом устранения уязвимости является обновление драйвера ядра Arm Mali до актуальной версии, в которой исправлена логика управления жизненным циклом объектов памяти.
- Определите текущую версию драйвера и архитектуру вашего GPU (серии Valhall, Bifrost или Midgard).
-
Скачайте исправленную версию драйвера с официального сайта Arm или репозитория производителя вашего устройства. Уязвимость устранена в следующих выпусках:
- Bifrost / Valhall GPU Kernel Driver: версия r43p0 и выше.
- Midgard GPU Kernel Driver: версия r32p0 и выше.
-
Если вы используете Android, проверьте наличие обновлений безопасности системы (Security Patch Level). Данная уязвимость была включена в бюллетень по безопасности Android.
-
Для систем на базе Linux (Embedded) выполните сборку и установку обновленного модуля ядра:
make -C /lib/modules/$(uname -r)/build M=/path/to/new/mali_driver modules
sudo insmod /path/to/new/mali_driver/mali_kbase.ko
Временные меры
Если немедленное обновление драйвера невозможно, рекомендуется принять следующие меры для снижения риска эксплуатации:
- Ограничение доступа: Исключите возможность запуска недоверенного кода локальными пользователями. Уязвимость требует локального доступа к системе.
- Изоляция приложений: Используйте механизмы принудительного контроля доступа (SELinux, AppArmor) для ограничения доступа приложений к файлам устройств GPU (
/dev/mali*), если их функционал этого не требует. - Мониторинг: Настройте аудит системных вызовов для обнаружения аномальной активности, связанной с выделением и освобождением памяти GPU.
- Обновление микрокода: Убедитесь, что прошивка устройства (Firmware) также обновлена до последней доступной версии от производителя.