CVE-2021-28664
Arm Mali Graphics Processing Unit (GPU)
2021-11-03
Arm Mali Graphics Processing Unit (GPU) kernel driver contains an unspecified vulnerability that may allow a non-privileged user to gain write access to read-only memory, gain root privilege, corrupt memory, and modify the memory of other processes.
Технический анализ и план устранения
Суть уязвимости
Уязвимость в драйвере ядра (mali_kbase.ko) графического процессора Arm Mali. Локальный непривилегированный пользователь может выполнить специально созданный код для:
* Получения прав на запись в защищенную от записи память.
* Эскалации привилегий до root.
* Повреждения памяти ядра.
* Модификации памяти других процессов (нарушение изоляции).
Как исправить
Установите обновления ядра и/или прошивки от производителя устройства (OEM/ODM), содержащие исправленные драйверы GPU. Конкретная команда зависит от дистрибутива и поставщика.
Для устройств на Android (Google Pixel): Обновитесь до сборки безопасности, содержащей исправления от июня 2021 года или новее. Проверьте и установите обновление:
# Перейдите в Настройки -> Система -> Обновление системы
Или для инженеров:
# Скачайте и прошейте образ с сайта разработчиков Google
Для устройств на Linux (например, некоторые одноплатные компьютеры):
Обновите ядро и пакеты драйверов Mali от поставщика платы (например, ARM, Rockchip, Amlogic). Пример для дистрибутива на базе apt:
sudo apt update
sudo apt upgrade linux-image-$(uname -r) linux-firmware
# ИЛИ установите специфичный пакет драйвера от вендора, например:
# sudo apt install mali-gpu-firmware
После обновления перезагрузите систему:
sudo reboot
Проверка: Убедитесь, что используется исправленная версия драйвера. Версия ядра должна быть не ниже 5.x. Проверить можно так:
uname -r
# Или найти драйвер в загруженных модулях
lsmod | grep mali
Временное решение
Если немедленное обновление невозможно, примените ограничительные меры:
-
Ограничение доступа к устройству GPU: Запретите выполнение пользовательских приложений, использующих GPU, или ограничьте доступ к нему для непривилегированных пользователей. Это сложная и специфичная для системы настройка, часто требующая правки политик SELinux/AppArmor или списков контроля доступа (ACL).
-
Изоляция пользователей: Минимизируйте количество пользователей, имеющих доступ к оболочке (shell) на уязвимой системе. Используйте принцип наименьших привилегий.
-
Мониторинг: Настройте мониторинг журналов ядра (
dmesg,journalctl -k) на предмет попыток загрузки модуляmali_kbaseили необычной активности, связанной с GPU.bash # Пример отслеживания логов ядра в реальном времени sudo journalctl -k -f | grep -i "mali\|gpu"
Важно: Данные меры носят ограничительный характер и не устраняют уязвимость. Полное исправление — только установка патча от вендора.