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

Исследователи из компании 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 в сетевом трафике.


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

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?
Ссылка