Специалисты Guardio Labs поделились подробностями о уже исправленном баге в браузере Microsoft Edge. Проблема могла использоваться для установки произвольных расширений в системы пользователей и выполнения вредоносных действий.
«Этот недостаток позволял злоумышленнику эксплуатировать приватный API, изначально предназначенный для маркетинговых целей, для скрытой установки дополнительных расширений с широкими привилегиями и без ведома пользователя», — рассказывают специалисты.
Проблема получила идентификатор CVE-2024-21388 (6,5 балла по шкале CVSS) и была устранена Microsoft в стабильной версии Edge 121.0.2277.83, выпущенной еще 25 января 2024 года. Тогда производитель поблагодарил специалистов Guardio Labs за обнаружение уязвимости.
В Microsoft сообщали, что за счет этой уязвимости атакующий мог получить привилегии, необходимые для установки расширений, а также мог осуществить побег из песочницы браузера. В компании этот недостаток характеризовали как проблему повышения привилегий, подчеркивая, что для успешного использования бага злоумышленнику придется «предпринять дополнительные действия перед эксплуатацией, чтобы подготовить целевую среду».
Как теперь пишут эксперты Guardio Labs, CVE-2024-21388 позволяет атакующему, способному запускать JavaScript на страницах bing.com или microsoft.com, устанавливать любые расширения из магазина Edge Add-ons, не требуя при этом согласия или участия пользователя. Это становится возможным благодаря тому, что браузер имеет привилегированный доступ к определенным приватным API, которые позволяют установить расширение, если то взято из официального магазина производителя.
Одним из таких API в браузере Edge является edgeMarketingPagePrivate, который доступен для ряда определенных сайтов, принадлежащих Microsoft, включая bing.com, microsoft.com, microsoftedgewelcome.microsoft.com, microsoftedgetips.microsoft.com и так далее.
Этот API также включает метод installTheme(), который, как следует из названия, предназначен для установки тем из магазина Edge Add-ons, передавая в качестве input уникальный идентификатор темы (themeId) и ее файл манифеста.
Ошибка, обнаруженная исследователями, представляла собой случай недостаточной валидации, что позволяло атакующему указать любой идентификатор расширения из магазина (а не themeId) и незаметно установить его.
«В качестве дополнительного бонуса, поскольку установка расширения происходит не совсем так, как было задумано изначально, от пользователя не требуется никакого участия или согласия», — рассказывают специалисты.
В сценарии гипотетической атаки с использованием CVE-2024-21388 злоумышленник мог бы опубликовать безобидное на первый взгляд расширение в магазине Edge и использовать его для внедрения вредоносного JavaScript-кода в bing.com (или любой другой сайт, которому разрешен API-доступ), а затем установить на машину жертвы произвольное расширение по своему выбору.
«Злоумышленники могут без труда обмануть пользователя, вынудив установить безобидное на первый взгляд расширение, и человек не поймет, что оно служит начальным этапом более сложной атаки», — отмечают в Guardio Labs.