Расширение с десятью миллионами установок таит скрытую возможность выполнения кода на любом сайте

Исследователи из компании Island — Олег Зайцев и Шахар Грицман — обнаружили в популярном расширении для Chrome спящий механизм, позволяющий исполнять произвольный JavaScript на всех посещаемых пользователем страницах. Блокировщик рекламы «Adblock for YouTube» (Chrome Web Store ID cmedhionkhpnakcndndgjdbohmhepckk) набрал более десяти миллионов установок и с 2014 года носит значок «Рекомендуемое» в магазине Chrome. Рейтинг расширения — 4.4 звезды при сотнях тысяч отзывов.
Около 2020 года расширение перешло под управление AdBlock Ltd, основанной Матиасом Рохусом. Именно после этой передачи, как установили в Island, в кодовой базе появились архитектурные изменения, открывшие путь для удалённого управления поведением расширения.
Ключевая проблема скрыта в библиотеке скриптлетов — небольших JavaScript-функций для блокировки рекламы. Расширение поставляется с набором этих функций, а серверная конфигурация определяет, какие из них запускаются и с какими аргументами. Скриптлет trusted-create-element, взятый из открытой библиотеки AdGuard, способен создавать HTML-элементы на странице. Если сервер передаст в качестве типа элемента значение «script» вместе с JavaScript-кодом, этот код выполнится в контексте открытой страницы. В таком случае возможно чтение конфиденциальных данных, кража информации и действия от имени пользователя.
Механизм активации предельно прост: достаточно одного изменения на сервере. Никакого обновления расширения, никакого прохождения проверки Chrome Web Store, никакого уведомления пользователя. На момент анализа возможность не была задействована — скриптлет находился в спящем состоянии, но сам потенциал присутствовал в коде.
Проверка домена в расширении реализована через поиск строки «youtube.com» в любом месте URL — без валидации имени хоста, фрейма или встроенного плеера. Это означает, что выражение «youtube.com» в параметре запроса или в поддомене даёт расширению карт-бланш. Примеры обхода: youtube.facebook.com/page?ref=youtube.com, bank.example.com/search?q=youtube.com, internal.corp.com/redirect?from=youtube.com. Фактически расширение работает на каждом сайте, куда заходит пользователь, — разрешение охватывает все URL через <all_urls>.
Ранние версии расширения содержали Unistream SDK — программный комплект для инъекции рекламы, который удалили только в июне 2024 года. Этот факт в сочетании со сменой владельца и архитектурой удалённого управления рисует картину расширения, создававшегося изначально не для блокировки рекламы.
В общую экосистему с «Adblock for YouTube» входят ещё три расширения, которые Google уже удалил из Chrome Web Store за распространение вредоносного ПО: «Adblock for Chrome» (onomjaelhagjjojbkcafidnepbfkpnee), «Adblock for You» (ogcaehilgakehloljjmajoempaflmdci) и «AdBlock Suite» (gekoepiplklhjiacchbbgbhilidiojmb). Связь между ними подтверждена специалистами Island.
Матиас Рохус из AdBlock Ltd заявил, что расширение никогда не использовало эту возможность и не собирается этого делать в будущем. В качестве доказательства добросовестности он сослался на высокий рейтинг и сотни тысяч отзывов. При этом в компании признали, что серверная конфигурация действительно способна в теории вызвать скриптлет, создающий исполняемый код. Сейчас готовится обновление для Chrome Web Store с двумя ключевыми исправлениями: проверка домена YouTube вместо примитивного поиска подстроки и отключение возможности создавать исполняемые скрипты через серверную конфигурацию. Обновление ждёт одобрения Google.
Скриптлет trusted-create-element сам по себе не является вредоносным — он часть открытой библиотеки AdGuard, которую используют многие блокировщики рекламы. Риск создаёт модель развёртывания: сервер решает, какие скриптлеты запускать и с какими аргументами, минуя проверку магазина расширений и любые уведомления пользователя.
Инцидент вписывается в общий тренд по расширениям-иммитаторам. Специалисты Palo Alto Networks Unit 42 параллельно зафиксировали кампанию с 18 расширениями, маскирующимися под потребительские бренды. Схема заработка проста: после установки открывается вкладка на домене .shop, та перенаправляет на другую страницу, где пользователю сообщают о «необходимости дальнейших действий» или «проблемах совместимости», после чего предлагают установить «игровой браузер» — по сути ещё одно потенциально нежелательное расширение. Механизм монетизации — партнёрский маркетинг.
Ситуация с «Adblock for YouTube» обнажает фундаментальную проблему Chrome Web Store: проверка магазина способна поймать вредоносный код до публикации, но не способна уследить за серверными изменениями, которые после одобрения превращают безобидное расширение в инструмент перехвата данных. Архитектура допускает злоупотребление вне зависимости от намерений текущего владельца — а смена владельца четыре года назад и три удалённых родственных расширения делают намерения предметом для отдельного разговора.
Что делать пользователям и компаниям
Для обычных пользователей: временно отключить расширение или удалить его до выхода обновлённой версии. Десять миллионов установок — это десять миллионов потенциально скомпрометированных браузеров, и активация спящего механизма зависит от одного серверного изменения на стороне AdBlock Ltd. Если организация поддерживает белый список расширений, стоит немедленно добавить в чёрный список идентификатор cmedhionkhpnakcndndgjdbohmhepckk и три связанных: onomjaelhagjjojbkcafidnepbfkpnee, ogcaehilgakehloljjmajoempaflmdci, gekoepiplklhjiacchbbgbhilidiojmb. Полезно также мониторить попытки обращения расширения к серверам конфигурации и появление скриптлета trusted-create-element в сетевом трафике.


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

Ссылка