Бесплатно Экспресс-аудит сайта:

18.04.2020

Раскрыты подробности о критических уязвимостях в ядре Android

Специалисты из компании Zimperium опубликовали подробное описание двух критических уязвимостей ядра в Android. Проблемы (CVE-2019-14040 и CVE-2019-14041) затрагивали все Android-устройства с чипсетами Qualcomm и могли быть использованы для предоставления вредоносным приложениям прав суперпользователя.

Команда исследователей zLabs сообщила Qualcomm о проблемах 31 июля 2019 года. 4 августа был предоставлен PoC-код для данных уязвимостей, а месяц спустя Qualcomm отправила исправления производителям Android-устройств.

Теперь, когда исправления стали доступны, Zimperium опубликовала PoC-коды на GitHub и подробно рассказала об уязвимостях ядра. Уязвимости содержатся в драйвере QTI Secure Execution Environment Communicator (QSEECOM), управляющем процессами, которые должны взаимодействовать с технологией TrustZone. Первая проблема (CVE-2019-14041) связана с «состоянием гонки» в функции обновления буфера __qseecom_update_cmd_buf, что может привести к переполнению буфера. API, предоставляемый QSEECOM, состоит из ioctls-вызовов к устройству /dev/qseecom. Для предотвращения дублирования, функция обновления буфера может быть выполнена через два совершенно разных ioctl и ведет себя по-разному в каждом сценарии. При этом функция проверяет data-> type, и, просто запросив этот вызов, можно повредить память.

Вторая проблема (CVE-2019-14040) представляет собой уязвимость использования после освобождения в проецируемой памяти ядра. Механизм ION, используемый в проецировании, «позволяет процессам пользовательского пространства выделять память из специальных куч, которые ведут себя не так, как обычная память», в результате чего не только процессы пользовательского пространства могут отображать или читать/записывать память.

При обращении к выделенному буферу ION некоторые параметры, включая дескрипторы, сохраняются. Специалисты обнаружили, что путем увеличения длины запроса возможно обойти стандартные валидационные проверки и выполнить код.

По словам экспертов, в сочетании с эксплуатацией других уязвимостей (CVE-2017-13253, CVE-2018-9411 и CVE-2018-9539) вредоносные приложения могут получать права суперпользователя для хищения учетных данных, загрузки дополнительных вредоносных программ, прослушивания частных звонков и перехвата контроля над камерой и микрофоном телефона.