Крупная атака на цепочку поставок ударила по экосистеме WordPress. Под удар попали миллионы сайтов, использующих популярные плагины от компании Awesome Motive. Речь идёт о модулях OptinMonster, TrustPulse и PushEngage, которые установлены в общей сложности более чем на 1,2 миллиона интернет-ресурсов. Злоумышленники внедрили вредоносный код непосредственно в легитимные файлы, загружаемые с серверов разработчика. Теперь любой залогиненный администратор сайта, открывший страницу с таким плагином, рискует передать контроль над ресурсом злоумышленникам.
Описание
Инцидент выявили специалисты компании Sansec, специализирующейся на безопасности электронной коммерции. Они обнаружили активную атаку на цепочку поставок, которая началась 12 июня 2026 года. Вредоносный код был внедрён не на самих сайтах жертв, а на уровне инфраструктуры Awesome Motive. Скомпрометированные файлы подгружались через CDN (сеть доставки контента), которую использует компания. Таким образом, каждый сайт, обращавшийся к этим скриптам, получал уже изменённый файл напрямую от источника. Среди затронутых доменов - a.omappapi.com, a.opmnstr.com, a.optnmstr.com, a.trstplse.com и clientcdn.pushengage.com.
Механизм атаки напоминает резонансный инцидент с библиотекой Polyfill, который Sansec описывала ещё в 2024 году. Суть та же: достаточно подменить один файл наверху цепочки поставок, чтобы вредоносная нагрузка достигла тысяч нижестоящих сайтов, не трогая каждый из них по отдельности. Однако в данном случае злоумышленники действовали гораздо более изощрённо.
Вредоносный JavaScript срабатывал не для всех посетителей. Он проверял несколько условий: отсутствие признаков автоматизированного браузера, наличие окна нормального размера и, самое главное, контекст администратора WordPress. Скрипт искал путь wp-admin, панель администратора или cookie wordpress_logged_in_. Если условия совпадали, запускалась многоступенчатая атака. После успешной проверки вредонос определял корневую директорию WordPress, версию системы и собирал nonce - временные ключи для API-запросов. Затем он приступал к главной цели.
Злоумышленники создавали новую учётную запись администратора. Для этого они использовали четыре разных метода: прямую отправку формы создания пользователя, запросы к admin-ajax.php, REST-интерфейсу wp/v2/users и даже скрытую отправку через iframe. Скрипт распознавал ответы об уже существующем пользователе примерно на двадцати языках. В результате на сайт добавлялась фиксированная учётная запись developer_api1 с паролем и почтой customer1usx@gmail.com, а также несколько случайных записей вида dev_xxxxxx.
После создания администратора вредонос загружал на сервер скрытый бэкдор-плагин. Этот плагин был спроектирован так, чтобы максимально маскироваться. Он прятался из списка пользователей, из списка плагинов в административной панели, из REST-запроса /wp/v2/plugins и из списка недавно активированных модулей. При инициализации он открывал два входа без аутентификации: по GET-запросу с параметром developer_api1_fm запускался веб-шелл, позволявший выполнять команды системы и загружать файлы, а POST-запрос к developer_api1_eval выполнял произвольный PHP-код. Сам плагин мог называться по-разному - в разное время его маскировали под "Content Delivery Helper" или "Database Optimizer", причём ZIP-архив генерировался каждый раз заново по запросу к серверу управления.
Собранные данные - логин, пароль, домен сайта, URL выхода, путь к админке, способ создания учётной записи, время и версию WordPress - злоумышленники шифровали с помощью XOR с ключом jX9kM2nP4qR6sT8v, затем кодировали в base64 и отправляли на домен tidio.cc, который имитирует настоящий сервис tidio.com. Для отправки использовались последовательно несколько методов: sendBeacon, fetch, XHR и, наконец, Image().src. Сервер управления (C2) работал на IP-адресе 84.201.6.554 (хостинг Ultahost) и оставался активным по меньшей мере до 13 июня.
Масштаб угрозы сложно переоценить. Компания Awesome Motive - один из крупнейших разработчиков плагинов для WordPress в мире. Её продукты, такие как WPForms (более 6 миллионов активных установок), MonsterInsights (около 2 миллионов) и All in One SEO (примерно 3 миллиона), используются на десятках миллионов сайтов. Пока специалисты Sansec подтвердили компрометацию только трёх плагинов - OptinMonster, TrustPulse и PushEngage. Однако вредоносный код на двух из них был удалён уже через несколько часов после обнаружения, что говорит о быстрой реакции Awesome Motive на инцидент. Тем не менее PushEngage в некоторых точках CDN продолжал раздавать заражённые скрипты даже после 13 июня. Остаётся открытым вопрос, не затронула ли атака другие компоненты экосистемы разработчика. Всем владельцам сайтов, использующим любые плагины от Awesome Motive, стоит быть настороже.
Для обычных посетителей сайтов эта атака была незаметна - вредоносная нагрузка срабатывала только при входе администратора. Но после того как злоумышленник получал полный контроль над ресурсом, он мог использовать его для любых целей: от кражи данных клиентов до распространения вредоносного кода на посетителей. Учитывая, что многие сайты с плагинами Awesome Motive относятся к электронной коммерции, последствия могли быть особенно серьёзными.
Администраторам сайтов, на которых были установлены OptinMonster, TrustPulse или PushEngage в период с 12 по 13 июня, следует немедленно проверить учётные записи. Наличие незнакомого администратора с именем developer_api1 или любого dev_xxxxxx - явный признак компрометации. Также необходимо просмотреть папку wp-content/plugins на сервере в поисках скрытых директорий content-delivery-helper или database-optimizer. Эти плагины активно прячутся из панели управления, поэтому доверять стоит только файловой системе. Если обнаружены любые индикаторы взлома, все пароли администраторов и секретные ключи нужно немедленно сменить, а сайт проверить на наличие других вредоносных программ и уязвимостей.
Атака на Awesome Motive - очередное напоминание о том, что даже доверенные поставщики расширений могут стать точкой входа для масштабных инцидентов. Уязвимость в одном звене цепочки поставок способна скомпрометировать миллионы сайтов. В условиях, когда разработчики быстро реагируют на угрозы, администраторам остаётся полагаться на своевременное обновление плагинов и регулярный мониторинг серверов. Только сочетание быстрой реакции вендора и бдительности пользователей может снизить риски от таких атак.
Индикаторы компрометации
IPv4
- 84.201.6.54
Domains
- tidio.cc
URLs
- tidio.cc/cdn-cgi/b
- tidio.cc/cdn-cgi/l
- tidio.cc/cdn-cgi/p
- tidio.cc/cdn-cgi/pe-b
- tidio.cc/cdn-cgi/pe-l
- tidio.cc/cdn-cgi/pe-p
Rogue accounts
- developer_api1 / customer1usx@gmail.com
- dev_xxxxxx / dev_xxxxxx@gmail.com
Backdoor plugin
- content-delivery-helper "Content Delivery Helper" v2.7.1
- database-optimizer "Database Optimizer" v2.9.4