Специалисты из Google Project Zero обнаружили 7 уязвимостей в JScript.dll.
Исследователи из Google Project Zero описали локальную PoC-атаку на компьютер под управлением Windows 10 со всеми установленными обновлениями, позволяющую выполнить недоверенный JavaScript-код за пределами песочницы.
Представленная исследователями атака является разновидностью атаки на WPAD/PAC и предполагает совокупную эксплуатацию сразу нескольких уязвимостей, затрагивающих PAC и Microsoft JScript.dll.
«Мы обнаружили 7 уязвимостей (JScript.dll) и продемонстрировали успешное выполнение кода из локальной сети (и за ее пределами) на полностью обновленной (на момент написания) 64-разраядной системе Windows 10 Fall Creators Update», — сообщили исследователи в своем блоге.
Атаки на протокол Web Proxy AutoDiscovery (WPAD) основываются на том, как браузеры используют PAC (Proxy Auto-Configuration) для направления HTTP- и HTTPS-запросов. Файлы PAC содержат JavaScript-код, указывающий, какой прокси должен использовать браузер, чтобы попасть на определенный URL.Злоумышленник может использовать вредоносный PAC и осуществлять мониторинг каждого запрашиваемого браузером URL-адреса.
Исследователи из Google Project Zero обнаружили новый вектор атаки. Экспертам удалось выявить 7 уязвимостей в движке Windows JScript для интерпретации файлов JavaScript PAC (CVE-2017-11810, CVE-2017-11903, CVE-2017-11793, CVE-2017-11890, CVE-2017-11907, CVE-2017-11855 и CVE-2017-11906). Эксперты связали две из них (приводящие к утечке информации и переполнению буфера) и, использовав несколько техник (в том числе возвратно-ориентированное программирование), обошли механизмы безопасности Windows. Затем они применили технику повышения привилегий и перешли из учетной записи Local Service, где сервис WPAD работает, но с минимальными привилегиями, в SYSTEM.
В настоящее время вышеупомянутые уязвимости уже исправлены. Тем не менее, это вовсе не значит, что исправлены все проблемы с безопасностью. «На обнаружение уязвимостей в JScript.dll у нас ушло много времени, усилий и вычислительной мощности, но мы не беремся утверждать, что нашли все. По факту, оказалось 7 уязвимостей, но их также может быть и 8», — отметили исследователи.
Возвратно-ориентированное программирование – метод эксплуатации уязвимостей в программном обеспечении, используя который атакующий может выполнить необходимый ему код при наличии в системе защитных технологий, например, технологии, запрещающей исполнение кода с определенных страниц памяти.