CVE-2023-33107
Qualcomm Multiple Chipsets
2023-12-05
Multiple Qualcomm chipsets contain an integer overflow vulnerability due to memory corruption in Graphics Linux while assigning shared virtual memory region during IOCTL call.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-33107 представляет собой критическую уязвимость типа «целочисленное переполнение» (Integer Overflow), приводящую к повреждению памяти (Memory Corruption) в графическом драйвере Qualcomm для ОС Linux. Проблема возникает в процессе обработки системного вызова IOCTL при попытке выделения или назначения общей области виртуальной памяти (Shared Virtual Memory).
Злоумышленник с локальным доступом к системе может использовать специально сформированный запрос IOCTL, чтобы вызвать переполнение при расчете размера буфера. Это позволяет выйти за пределы выделенной памяти, что ведет к выполнению произвольного кода с привилегиями ядра или к отказу в обслуживании (DoS). Уязвимость эксплуатировалась в ограниченных целевых атаках.
Как исправить
Основным способом устранения является обновление прошивки устройства и ядра системы до версии, содержащей официальный патч от Qualcomm.
- Для конечных пользователей Android-устройств: Проверьте наличие обновлений системы безопасности. Исправление включено в бюллетень по безопасности Android от октября/ноября 2023 года.
settings list global | grep "ota"
-
Для разработчиков встраиваемых систем (Embedded Linux): Необходимо обновить драйвер графической подсистемы (Adreno/KGSL) в дереве исходного кода ядра. Убедитесь, что применены патчи, добавляющие проверку границ (bounds checking) при расчете размера виртуальной памяти.
-
Обновление пакетов в дистрибутивах (если применимо):
apt-get update && apt-get upgrade
- Проверка версии установленного микрокода/прошивки (для отладочных плат):
cat /sys/class/kgsl/kgsl-3d0/devide_id
Временные меры
Если немедленное обновление невозможно, рекомендуется принять следующие меры для снижения риска эксплуатации:
- Ограничение доступа к графическим узлам:
Минимизируйте количество приложений и пользователей, имеющих права на чтение/запись в файлы устройств GPU (например,
/dev/kgsl-3d0).
chmod 660 /dev/kgsl-3d0
-
Использование механизмов изоляции: Запускайте недоверенные приложения в изолированных контейнерах или песочницах (Sandbox) с ограниченным доступом к аппаратным ресурсам и системным вызовам (seccomp-bpf).
-
Мониторинг системных вызовов: Настройте аудит системы для отслеживания аномальных или повторяющихся ошибок сегментации в процессах, взаимодействующих с графическим драйвером.
dmesg | grep -i "kgsl"
- Отключение неиспользуемых функций SVM: Если архитектура приложения позволяет, временно отключите использование Shared Virtual Memory в конфигурации графического стека.