«Этот недостаток позволял злоумышленнику эксплуатировать приватный 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) и незаметно установить его.
Нет комментариев