CVE-2021-28663
Arm Mali Graphics Processing Unit (GPU)
2021-11-03
Arm Mali Graphics Processing Unit (GPU) kernel driver contains a use-after-free vulnerability that may allow a non-privileged user to make improper operations on GPU memory to gain root privilege, and/or disclose information.
Технический анализ и план устранения
Суть уязвимости
Уязвимость типа use-after-free в драйвере ядра (kernel driver) графического процессора (GPU) Arm Mali. Локальный непривилегированный пользователь может:
* Выполнить специально созданный код, который манипулирует освобожденной памятью GPU.
* Использовать это для эскалации привилегий до уровня root (суперпользователя).
* Получить доступ к конфиденциальной информации в памяти ядра.
Как исправить
Решение — обновить драйвер GPU и/или ядро ОС до версии, содержащей исправления от Arm.
-
Определите точную модель GPU и версию драйвера:
bash cat /sys/kernel/debug/mali/gpu_infoИли для устройств Android:bash dmesg | grep -i mali -
Установите обновления:
- Для устройств с Android: Обновите прошивку устройства через настройки системы. Исправление включено в патчи безопасности Android, начиная с 2021-08-05. Требуется обновление от производителя устройства (OEM).
- Для систем на Linux (например, серверы с GPU Arm): Обновите пакет ядра (
linux-image) и драйверы Mali (mali-dkms,mali-kbase) из репозитория вашего дистрибутива. Ищите версии драйверов, содержащие исправления для CVE-2021-28663 (например,r28p0или новее для определенных GPU). - Пример для Ubuntu/Debian:
bash sudo apt update sudo apt upgrade linux-image-$(uname -r) linux-firmware # Если драйвер установлен отдельным пакетом (например, от Arm или производителя SoC): sudo apt install --only-upgrade mali-gpu-firmware mali-dkms - После обновления перезагрузите систему:
bash sudo reboot
Временное решение
Если немедленное обновление невозможно, примените ограничительные меры:
-
Ограничьте доступ к GPU: Настройте систему так, чтобы только доверенным пользователям и приложениям был доступен графический драйвер (устройство
/dev/mali0или аналогичное). Используйте списки контроля доступа (ACL) илиcgroups.bash # Пример: изменим группу и права на устройство (путь может отличаться) sudo chown root:trusted_gpu_group /dev/mali0 sudo chmod 660 /dev/mali0Добавьте в группуtrusted_gpu_groupтолько необходимых пользователей. -
Принудительное использование Control Groups (cgroups): Ограничьте для непривилегированных пользователей возможность взаимодействия с подсистемой устройств (
devices cgroup), заблокировав доступ к файлам устройств Mali. -
Сегментация сети: Изолируйте уязвимые системы в отдельный сетевой сегмент. Заблокируйте все входящие подключения, кроме необходимых для администрирования (SSH). Используйте
iptablesилиnftables:bash # Блокируем все входящие, кроме SSH (порт 22) sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -j DROP
Важно: Эти меры лишь усложняют эксплуатацию, но не устраняют уязвимость. Патч должен быть установлен как можно скорее.