Голландская компания Sansec сообщает о масштабной кампании, в ходе которой злоумышленники заразили 953 интернет-магазина, преимущественно работающих на платформе Magento (Adobe Commerce). Кампания активна с июля 2025 года и использует механизм CMS-блоков Magento для внедрения вредоносного JavaScript-загрузчика, который целенаправленно обходит автоматизированные сканеры безопасности и отдаёт вредоносный код только реальным покупателям. Владельцам магазинов на Adobe Commerce и Magento Open Source необходимо немедленно проверить таблицы cms_block и cms_page на наличие подозрительного кода и применить актуальные патчи безопасности.
Механизм атаки: CMS-блоки как вектор персистентности
Атакующие внедряют небольшой фрагмент кода в CMS-блоки Magento — таблицу cms_block базы данных, которая используется для рендеринга статического контента (шапка, подвал, промо-баннеры) на страницах магазина. При посещении заражённой страницы браузер покупателя обращается к серверу злоумышленников, который сначала проверяет, является ли посетитель реальным человеком или автоматизированным сканером. Сканеры не получают ничего — это ключевая причина, по которой кампания оставалась незамеченной длительное время.
По данным Sansec, за время кампании использовались пять доменов:
manulfie[.]click— с июля 2025neswnsssn[.]click— с декабря 2025lanhd6549tdhse[.]top— с марта 2026additionalver[.]com— с июня 2026deepveindrilling[.]com— с октября 2026
Последний домен, зарегистрированный 6 октября 2026 года, по данным Sansec, обнаружен в CMS-блоках 83 магазинов.
Две версии загрузчика и обход защиты
Исследователи выявили две версии загрузчика. Первая сохраняет полезную нагрузку в localStorage браузера, что обеспечивает повторное выполнение вредоносного кода при последующих визитах — даже если внешний домен атакующих станет недоступен. Вторая версия дополнительно использует фингерпринтинг браузера для фильтрации ботов и сканеров безопасности.
Ранние итерации кампании использовали платформу Keitaro в качестве системы распределения трафика (TDS), позволяя возвращать разные ответы в зависимости от характеристик посетителя. Новейший домен deepveindrilling[.]com отказался от Keitaro и интегрировал логику фильтрации ботов непосредственно в загрузчик.
Конечная полезная нагрузка, доставляемая загрузчиком, на момент публикации исследования Sansec не была захвачена. Это означает, что точный характер угрозы для покупателей — будь то кража платёжных данных, перенаправление или иная вредоносная активность — остаётся неустановленным.
Векторы первоначального доступа и противоречия в оценке эксплуатации
По оценке Sansec, 471 магазин был скомпрометирован через уязвимость CVE-2026-48356 (PolyShell) — критическую уязвимость загрузки файлов опасного типа (CWE-434) в Adobe Commerce с оценкой CVSS 9.6 по данным Adobe. Ещё 102 магазина, по данным Sansec, были скомпрометированы через PolyShell или CVE-2025-54236 (SessionReaper) — уязвимость некорректной валидации ввода с CVSS 9.1.
Здесь существует важное расхождение: Adobe в бюллетене APSB26-73 заявляет, что компании не было известно об эксплуатации уязвимостей, покрытых этим обновлением, в реальных атаках, тогда как Sansec напрямую связывает CVE-2026-48356 с массовым заражением. Для CVE-2025-54236 ситуация иная — Adobe подтверждает факт эксплуатации в дикой природе. Обе уязвимости внесены в каталог CISA KEV.
Затронутые версии Adobe Commerce для CVE-2026-48356: 2.4.9, 2.4.8-p5 и ранее, 2.4.7-p10 и ранее, 2.4.6-p15 и ранее, 2.4.5-p17 и ранее, 2.4.4-p18 и ранее.
Патчи не гарантируют безопасность
Один из наиболее тревожных выводов исследования Sansec: полностью пропатченный магазин на Magento 2.4.7-p10 без пропущенных обновлений ядра был скомпрометирован через создание поддельной учётной записи администратора, которая затем использовалась для инъекции вредоносного кода. Это означает, что обновление до последней версии — необходимое, но недостаточное условие защиты. Загрузчик хранится в таблице базы данных, а не в файловой системе, поэтому удаление скрипта из файлов не устранит заражение, если не проверена база данных и не отозваны скомпрометированные учётные записи.
Связь с PHP2Shell
Публикация Sansec совпала по времени с активной эксплуатацией двух критических RCE-уязвимостей в PHP — CVE-2026-109618 и CVE-2026-109619 (CVSS 9.2 каждая), известных как PHP2Shell. По данным отчёта исследователя Adel Karimi, 24 октября 2026 года на ханипотах с PHP 8.4.26 под Apache mod_php было зафиксировано 35 случаев выполнения shell-команд. Обе уязвимости внесены в каталог CISA KEV. Мы уже писали об этих уязвимостях — они затрагивают версии PHP до 8.2.35, 8.3.36, 8.4.27 и 8.5.12. Важно подчеркнуть, что это отдельный вектор угрозы от кампании с CMS-блоками Magento: PHP2Shell связан с уязвимостями самого интерпретатора PHP, тогда как Magento-кампания эксплуатирует уязвимости уровня приложения.
Индикаторы компрометации
Домены загрузчиков:
manulfie[.]click,neswnsssn[.]click,lanhd6549tdhse[.]topadditionalver[.]com,deepveindrilling[.]comhdfdsi84j3h[.]top,c85grt98sd[.]com
IP-адреса: 15.204.59.70, 104.28.208.84, 144.48.4.242, 162.35.99.94
Рекомендации
- Проверьте базу данных: выполните поиск в таблицах
cms_blockиcms_pageна наличие паттерновfpCode,se_referrer,localStorage.getItemи перечисленных доменов. - Аудит учётных записей: проверьте список администраторов на наличие неизвестных или подозрительных аккаунтов — даже на полностью обновлённых системах.
- Примените патчи: установите обновление APSB26-73 для устранения CVE-2026-48356 и убедитесь, что ранее применён патч для CVE-2025-54236.
- Обновите PHP: до версий 8.2.35, 8.3.36, 8.4.27 или 8.5.12 для закрытия уязвимостей PHP2Shell.
- Усильте аутентификацию: внедрите надёжные пароли и двухфакторную аутентификацию для административных панелей.
Кампания демонстрирует эволюцию тактик веб-скимминга: хранение загрузчика в базе данных CMS вместо файловой системы, персистентность через localStorage браузера и активная фильтрация сканеров делают обнаружение стандартными средствами крайне затруднительным. Владельцам магазинов на Adobe Commerce и Magento следует немедленно провести аудит таблиц cms_block базы данных и административных учётных записей — одного лишь обновления до последней версии платформы недостаточно для гарантии отсутствия компрометации.












