Уязвимость Windows 10, позволяющая обойти Windows Lockdown Policy и привести к выполнению кода, остается неисправленной, хотя Microsoft была проинформирована о ее существовании 90 дней назад.
Уязвимость обнаружил Джеймс Форшоу из команды Google Project Zero, она затрагивает платформу .NET, позволяет обойти политику Windows Lockdown Policy. Проблема была воспроизведена в Windows 10S, однако эксперт утверждает, что она затрагивает все версии Windows 10 с включенной функцией UMCI (User Mode Code Integrity).
Баг, как поясняет исследователь, существует из-за того, как Windows Lockdown Policy реагирует на создание COM-объекта. Грамотная реализация должна проверять CLSID, передаваемый в DllGetObject для регистрации DLL.
Специалист же обнаружил, что при создании COM-объекта CLSID используется только для поиска регистрационной информации в ветке реестра HKCR. Таки образом, злоумышленник может добавлять ключи реестра, в том числе в ветке HKCU, для загрузки произвольного COM-класса под одним из разрешенных CLSID.
Для успешной эксплуатации злоумышленник может использовать такие инструменты, как DotNetToJScript. DotNetToJScript представляет собой бесплатный инструмент, позволяющий пользователям создавать JScript, который загружает сборку .NET.
Proof-of-Concept код был опубликован Форшоу по этому адресу. Специалист сообщил о проблеме Microsoft 19 января, компания признала наличие данной уязвимости. Исходя из условий раскрытия информации об уязвимостях, Форшоу опубликовал технические детали спустя 90 дней, за которые Microsoft так и не устранила недостаток.