Как сайт мог узнать вашу почту в Opera GX, даже не дав вам кликнуть мышкой?

Исследователи безопасности нашли в Opera GX дыру, через которую произвольный сайт мог без единого клика жертвы установить в браузер собственный модификатор — и с его помощью вытащить данные прямо со страниц, которые человек открывал после этого. В качестве доказательства команда восстановила полный Gmail-адрес залогиненного пользователя буквально за одно посещение вредоносной страницы. Никаких подтверждений, никаких предупреждений — просто зашёл на сайт и через несколько секунд твой адрес почты уже лежит на сервере атакующего.
Как сайт мог узнать вашу почту в Opera GX, даже не дав вам кликнуть мышкой?
Изображение носит иллюстративный характер

Opera GX — это игровая версия браузера Opera, известная тем, что позволяет пользователям переделывать интерфейс под себя: менять звуки, темы, обои рабочего стола, накладывать собственные CSS-стили поверх интерфейса браузера. Эти надстройки называются GX Mods и поставляются в виде файлов.crx — по сути, это тот же формат, что используется для расширений браузера. Разработчики Opera подчёркивают, что моды не умеют выполнять JavaScript и не имеют разрешений — вроде бы безобидная косметика. Проблема была не в самих модах, а в том, как браузер их устанавливал.
Механизм оказался устроен так, что мод скачивался и активировался автоматически, без всякого запроса на подтверждение. Единственный признак того, что что-то произошло — тонкая уведомляющая полоска под адресной строкой с кнопкой «Удалить». Больше ничего. Ни диалогового окна, ни паузы, ни явного согласия пользователя.
Это не первая история с этим механизмом. Ещё в 2023 году исследователь под ником Renwa обнаружил ту же автоматическую установку и довёл атаку до логического предела — превратил установленный мод в полноценное расширение и подделал содержимое адресной строки браузера, заставив жертву поверить, что она находится на легитимном сайте. Opera тогда закрыла именно этот конкретный сценарий в марте 2023 года, но саму автоустановку модов трогать не стала. Новое исследование выросло ровно из этой оставленной без внимания дыры.
Атакующие использовали технику, которую можно назвать «универсальной CSS-инъекцией». Обычно инъекция стилей ограничена одной страницей — той, куда её вставили. Но стили, приходящие через мод, действуют вообще на всех страницах, которые открывает пользователь, включая совершенно посторонние сайты. Дальше в дело идёт классический трюк с CSS-селекторами по атрибутам: скрипт проверяет, начинается ли значение какого-то атрибута элемента (например, поля с email) с определённой буквы. Если совпадение есть, браузер отправляет запрос на загрузку фонового изображения с сервера атакующего — а значит, факт совпадения становится виден снаружи. Повторяя эту проверку раз за разом, можно восстановить значение символ за символом. Такой способ утечки данных в индустрии называют XS-Leak, то есть межсайтовой утечкой.
В качестве цели исследователи выбрали страницу — там адрес электронной почты присутствует сразу в трёх HTML-атрибутах. Первая версия атаки пыталась угадывать почту кусками по четыре буквы и потребовала 5,6 миллиона CSS-правил общим весом около 880 мегабайт — браузер попросту падал под такой нагрузкой. Финальный вариант оказался экономнее: около 150 тысяч правил с перекрывающимися трёхбуквенными фрагментами, из которых адрес затем собирался отдельным скриптом. Вся цепочка атаки выглядела так: жертва заходит на сайт атакующего, за несколько секунд подгружается мод, JavaScript перенаправляет браузер на страницу аккаунта Google, CSS мода начинает отстреливать запросы по мере отрисовки страницы, и адрес утекает ещё до того, как человек успевает нажать кнопку «Удалить».
Кража Gmail-адреса была всего лишь демонстрацией возможностей. Та же методика годится для извлечения любых данных, которые присутствуют в разметке страницы — например, имён пользователей или других идентификаторов, если они отображаются в атрибутах HTML.
Заодно нашли вторую, менее раскрученную проблему: если загрузить.crx-файл, находясь в режиме инкогнито, браузер падает и сбрасывает все открытые вкладки. Баг затрагивает и обычную Opera, и Opera GX — механизм установки расширений у них общий. В официальном сообщении компании об этой уязвимости не было ни слова — там говорилось только об утечке данных.
Отдельного упоминания заслуживает история с самой программой bug bounty, которую Opera ведёт на площадке Bugcrowd. Специалисты по разбору заявок сперва не разобрались, что происходит, и оценили уязвимость лишь как P3 — то есть среднюю по серьёзности. Переломный момент наступил, когда один из аналитиков сам пытался воспроизвести атаку у себя: исследователи перехватили его же собственные триграммы, восстановили из них его настоящий Gmail-адрес и вставили этот адрес прямо в отчёт как доказательство. После этого статус баг подняли до P1 — максимальной категории серьёзности, а выплату довели до потолка в 5000 долларов.
Opera публично называет атаку «сложной в исполнении», указывая, что жертве нужно сначала попасть на вредоносный сайт, дать установиться свежему моду и затем достаточно долго игнорировать уведомление об удалении, чтобы редирект успел сработать. Исследователи с этим не согласны: перенаправление срабатывает за считанные секунды — быстрее, чем человек вообще успевает прочитать текст уведомления, не говоря уже о клике по кнопке «Удалить». По их словам, схема действительно узкая и капризная в настройке, но при правильной подготовке срабатывает вообще без единого действия со стороны пользователя.
Главная суть проблемы была не в самой функции косметических модов, а в её охвате — способности дотянуться до содержимого абсолютно любой открытой страницы. Похожий класс атак разбирали в исследовании PortSwigger по слепой эксфильтрации через CSS, где отдельно отмечалось, что кража данных через один лишь CSS обычно остаётся заперта в пределах той страницы, куда её внедрили. В данном случае это ограничение оказалось снято благодаря самой архитектуре модов Opera GX. Это уже не первый случай, когда фирменная фича Opera превращается в уязвимость — ранее сообщалось про баг MyFlaw 2024 года в функции My Flow того же браузера. А про саму автоустановку модов компанию предупреждали ещё в 2023-м, задолго до нынешнего исследования.
Исправление вышло в версии Opera GX 130.0.5847.89. Проверить свою версию можно на странице Формальный номер CVE уязвимости не присвоили, а до выхода патча никакого обходного пути защититься от неё не существовало — атака не требовала ни кликов, ни каких-либо подтверждений со стороны пользователя. Сама компания заявляет, что «весьма уверена» — в реальных условиях эту дыру никто не эксплуатировал.


Новое на сайте

20327Кости прерий: как истребление бизонов породило целую индустрию — и сама себя же уничтожила 20326Кто и зачем взламывает серверы Ollama и ComfyUI ради ключей от AWS? 20325Как злоумышленники спрятали командный сервер внутри блокчейна и почему его невозможно... 20324Брюссель заставляет Android делиться секретами с чужими ИИ-помощниками 20323WordPress: как два бага слились в одну критическую дыру, которую назвали wp2shell 20322Как китайские хакеры обманули DigiCert и украли сертификаты для подписи кода? 20321Что скрывается за уязвимостью, которую агентство США внесло в список активно используемых... 20320Автономные системы наступают быстрее, чем инфраструктура для управления ими: кто выиграет... 20319Почему в OpenSSL нашли дыру, съедающую память серверов, но не дали ей даже номер CVE? 20317SonicWall SMA 1000: как два бага превратили VPN-шлюз в бэкдор для атакующих 20316Может ли уязвимость в клиенте Zoom для Windows открыть доступ к чужому аккаунту без... 20315TELEPUZ: новый вредонос на C, который научился прятаться в Telegram, Steam и блокчейне... 20314Дома из дёрна: как исландцы триста лет прятались от холода под слоем земли и травы 20313Как один токен от чужого сервиса мог впустить злоумышленника в чужой аккаунт n8n?
Ссылка