Эксперт Google Project Zero, Джеймс Форшоу, обнаружил новый класс уязвимостей, которые затрагивают драйверы Windows уровня ядра. Успешная эксплуатация этих уязвимостей обеспечат злоумышленнику эскалацию привилегий уровня ядра системы.

Уязвимости присутствуют из-за отсутствия необходимых проверок во время обработки специфических запросов. Windows использует поля PreviousMode для установки UserMode или KernelMode — следовательно, определяет, поступили ли аргументы вызова от надежного или ненадежного источника.

Этот же механизм используется для создания и открытия файлов, где код уровня ядра может выбрать из различных функций API, включая функцию IopCreateFile. В этом случае PreviousMode назначается специальной переменной, чтобы определить нужно ли проверять параметры на допустимость значений.

Windows также использует эту переменную для проверки привилегий, если это UserMode. Таким образом, параметр Options в IopCreateFile становится доступным для API-функций, которые могут быть вызваны только из режима ядра — это позволяет установить KernelMode в качестве AccessMode.

Компания Microsoft была проинформирована о наличии проблемы и разработчики пообещали устранить выявленные уязвимости в рамках будущих плановых "вторников обновлений" для Windows.