Критическая уязвимость в Opera GX позволяла похищать данные через CSS-инъекцию в GX Mods

Opera GX

Исследователь под псевдонимом zhero_web_security обнаружил в браузере Opera GX критическую уязвимость, связанную с функцией GX Mods. Злоумышленники могли использовать её для инъекции вредоносного CSS на все страницы, которые посещает жертва, что открывало возможность для кражи конфиденциальной информации. Opera выпустила исправление, закрывающее проблему.

Детали уязвимостей

GX Mods представляют собой пакеты кастомизации, включающие темы, звуки и CSS-файлы. В отличие от обычных расширений браузера, они не запрашивают явные разрешения и не используют JavaScript. Однако исследователь выявил, что GX Mods загружаются и устанавливаются автоматически при скачивании .crx-файлов, в том числе через встроенный iframe. Чтобы установить вредоносный мод, злоумышленнику достаточно заманить пользователя на специально созданную страницу - никаких дополнительных действий от жертвы не требуется. Единственным видимым признаком является уведомление под адресной строкой, которое появляется уже после начала атаки.

После установки CSS мода применяется глобально ко всем вкладкам, создавая универсальный вектор инъекции. Хотя CSS не может напрямую читать содержимое страницы, он способен условно инициировать внешние запросы на основе DOM-атрибутов. Например, с помощью селекторов, проверяющих определённое значение атрибута, можно заставить браузер загрузить ресурс с сервера атакующего, если условие выполняется. Таким образом злоумышленник получает сигнал о наличии нужной информации.

В рамках доказательства концепции исследователь продемонстрировал атаку на адрес электронной почты Gmail. Для этого генерировались тысячи CSS-правил, каждое из которых проверяло наличие определённой триграммы - последовательности из трёх символов - в значении атрибута, содержащего email. Чтобы избежать коллизий каскада CSS, когда несколько правил перезаписывают одно и то же свойство, использовались CSS-переменные. Каждому совпадению присваивалась уникальная переменная, а затем все они потреблялись через объединённое свойство background-image, загружая несколько URL одновременно.

Для восстановления полного адреса применялся алгоритм реконструкции. Из полученных триграмм (начальной, конечной и промежуточных) собиралась исходная строка. Алгоритм работал по принципу поиска в глубину, последовательно расширяя префикс за счёт перекрывающихся триграмм. Учитывалось, что одна и та же триграмма могла встречаться несколько раз, поэтому каждой выделялся бюджет на повторное использование. Тестирование показало, что метод надёжно восстанавливает email-адрес после однократной загрузки целевой страницы.

Цепочка атаки полностью автоматизирована. После того как жертва заходит на сайт злоумышленника, GX Mod устанавливается в течение нескольких секунд. Без участия пользователя браузер перенаправляется на страницу, содержащую конфиденциальные данные, например на панель управления аккаунтом Google. CSS мгновенно срабатывает, и триграммы email отправляются на сервер атакующего. У пользователя нет времени отреагировать или удалить мод - утечка происходит до того, как он вообще заметит уведомление.

Помимо кражи данных, исследователь обнаружил DoS-уязвимость в Opera GX и обычной Opera. Если в режиме инкогнито инициировать загрузку .crx-файла, браузер аварийно завершает работу и перезапускается, что приводит к полной потере текущей сессии. Проблема связана с тем, как браузер обрабатывает конвейер установки расширений в приватном режиме.

Исследователь сообщил об уязвимостях через программу Bugcrowd, на которой Opera проводит приём отчётов об ошибках. Сначала аналитики Bugcrowd оценили угрозу как P3 (средний уровень), но после демонстрации атаки с восстановлением email одного из анализов Opera пересмотрела критичность до P1 и выплатила максимальное вознаграждение - 5 тысяч долларов. Команда безопасности Opera оперативно выпустила патч, устраняющий обе уязвимости.

Пользователям рекомендуется обновить браузер Opera GX до последней версии. Для временной защиты от атак на базе CSS-инъекций стоит отключить автоматическую установку GX Mods, если такая опция предусмотрена в настройках, а также проявлять осторожность при переходе на незнакомые сайты.

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

Ссылки

Комментарии: 0