CVE-2023-33106

Qualcomm Multiple Chipsets

ВЕРОЯТНОСТЬ 0.2%

Дата обнаружения

2023-12-05

Официальное описание

Multiple Qualcomm chipsets contain a use of out-of-range pointer offset vulnerability due to memory corruption in Graphics while submitting a large list of sync points in an AUX command to the IOCTL_KGSL_GPU_AUX_COMMAND.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2023-33106 представляет собой критическую уязвимость типа Use of out-of-range pointer offset (использование смещения указателя за пределами допустимого диапазона) в графическом драйвере ядра Qualcomm.

Проблема возникает в обработчике IOCTL_KGSL_GPU_AUX_COMMAND подсистемы KGSL (Kernel Graphics Support Layer). При передаче чрезмерно большого списка точек синхронизации (sync points) в AUX-команде происходит некорректная валидация входных данных. Это приводит к повреждению памяти (memory corruption), что позволяет локальному атакующему: * Вызвать отказ в обслуживании (Kernel Panic/DoS). * Повысить привилегии в системе до уровня ядра. * Осуществить чтение или запись в защищенные области памяти.

Как исправить

Основным способом устранения является обновление прошивки устройства и ядра Android до актуальной версии, содержащей патч от Qualcomm.

  1. Проверьте текущую версию патча безопасности в настройках устройства (Security Patch Level). Уязвимость устранена в обновлениях от октября 2023 года и более поздних.

  2. Для OEM-производителей и разработчиков кастомных ядер необходимо применить официальный патч Qualcomm, который добавляет строгую проверку границ массива точек синхронизации перед их итерацией.

  3. Если вы используете ADB для управления парком устройств, проверьте версию ядра:

adb shell uname -r

  1. Выполните поиск доступных обновлений системы через интерфейс настроек или с помощью команды (для поддерживаемых устройств):
adb shell cmd software_update check

Временные меры

Если установка официального патча невозможна в данный момент, рекомендуется принять следующие меры для снижения риска эксплуатации:

  1. Ограничьте установку приложений из неизвестных источников. Эксплуатация требует наличия вредоносного кода на устройстве для вызова специфического IOCTL.
adb shell settings put global install_non_market_apps 0

  1. Используйте механизмы изоляции приложений (Sandboxing) и убедитесь, что SELinux находится в режиме Enforcing. Это может затруднить использование повреждения памяти для получения полного контроля над ядром.
adb shell getenforce

  1. Для корпоративных устройств: внедрите политику минимизации привилегий, запрещающую выполнение произвольного нативного кода (JNI) приложениями с низким уровнем доверия.

  2. Мониторинг стабильности: частые перезагрузки графической подсистемы или устройства могут быть признаком попыток эксплуатации уязвимости. Проверяйте логи ядра на наличие ошибок KGSL:

adb shell dmesg | grep -i kgsl