В 953 магазинах Magento нашли скрытый JavaScript-загрузчик

Неизвестная группировка внедрила вредоносный JavaScript в 953 интернет-магазина, большинство из которых работает на Magento. Компания Sansec зафиксировала кампанию, активную с июля 2025 года: загрузчик размещается в CMS-блоках Magento, а актуальный домен deepveindrilling[.]com обнаружен в 83 магазинах с момента его регистрации 6 октября 2026 года.
Загрузчик выбирает реальных покупателей
При открытии заражённой страницы код заставляет браузер обратиться к серверу атакующих за дальнейшими инструкциями. Этот сервер проверяет, является ли посетитель реальным покупателем или сканером безопасности. Сканеры не получают содержимого, поэтому обычная автоматическая проверка сайта может не заметить инъекцию.
За время кампании Sansec связала с ней пять доменов: manulfie[.]click, neswnsssn[.]click, lanhd6549tdhse[.]top, additionalver[.]com и deepveindrilling[.]com. Последний домен расположен за Cloudflare и отвечает на запросы скрипта только от посетителей скомпрометированных витрин.
Код размещается в таблице cms_block, которая отвечает за вывод статического контента на страницах магазина. Sansec не уточняет, меняют ли атакующие существующий блок — например, шапку, подвал или промобаннер, — либо создают новый. В обоих случаях загрузчик выполняется после рендеринга блока в браузере покупателя.
Две версии скрипта и закрепление в браузере
Исследователи увидели две версии загрузчика. В первой внешний JavaScript сохраняет полезную нагрузку в localStorage браузера. Благодаря этому сохранённый код может исполняться при последующих посещениях, даже если внешний домен уже недоступен.
Вторая версия дополняет этот механизм проверками браузерного отпечатка и фильтрацией ботов. Ранние варианты кампании использовали Keitaro как систему распределения трафика: в зависимости от характеристик посетителя она возвращала нагрузку, перенаправление либо пустой ответ. Домен deepveindrilling[.]com отказался от отдельного компонента Keitaro и перенёс логику фильтрации непосредственно в загрузчик.
Назначение финальной полезной нагрузки Sansec пока не установила. При запросе скрипта с additionalver[.]com как посетитель Windows-настольного компьютера исследователи получили строку «QWE=123;»: она лишь устанавливала cookie с отметкой на 24 часа.
Какие пути использовали атакующие
Sansec оценивает, что в 471 магазине Magento загрузчик появился через уязвимость PolyShell, также известную как CVE-2026-48356. Ещё в 102 магазинах файлы были загружены через PolyShell или SessionReaper, CVE-2025-54236.
В одном магазине на Magento 2.4.7-p1 исследователи нашли веб-оболочки PolyShell, замаскированные под PNG-файлы в каталоге pub/media/custom_options/quote/, рядом с загрузчиком additionalver[.]com в CMS-блоке. 7 октября блок переключился на deepveindrilling[.]com, а на сайте по-прежнему отсутствовало обновление APSB26-73 с исправлением PolyShell для поддерживаемых веток Adobe.
Другой магазин использовал Magento 2.4.7-p10 без пропущенных основных патчей, однако атакующие создали в нём постороннюю учётную запись администратора и через неё внедрили код. Это показывает, что одних обновлений ядра недостаточно для исключения уже полученного доступа.
Что проверить владельцам магазинов
Sansec рекомендует проверить подозрительные учётные записи и неожиданные CMS-блоки в таблицах cms_block и cms_page, своевременно устанавливать обновления и применять надёжные пароли. Для бизнеса практический вывод состоит в том, что аудит содержимого CMS и административных доступов должен идти вместе с управлением патчами: вредоносный код может быть незаметен сканерам, но срабатывать в браузере реального покупателя.

