Вредоносный код обнаружен в официальном плагине GravityForms: компрометация цепочки поставок угрожает безопасности WordPress

information security

Экосистема WordPress столкнулась с масштабным инцидентом информационной безопасности после обнаружения скрытого вредоносного кода в официальной версии плагина GravityForms. Исследовательская группа Patchstack подтвердила факт компрометации цепочки поставок, когда злоумышленники внедрили бэкдоры непосредственно в дистрибутив плагина, распространяемый через каналы разработчика. Инцидент, впервые зафиксированный 10 июля 2025 года, демонстрирует изощренную тактику supply chain-атаки, при которой легитимное программное обеспечение превращается в инструмент киберпреступников. Технический анализ выявил два независимых механизма заражения, реализованных через функции update_entry_detail и list_sections в кодовой базе плагина.

Описание

Первоначальное обнаружение произошло благодаря бдительности систем мониторинга, зафиксировавших аномальные HTTP-запросы к домену gravityapi.org. Расследование показало, что этот домен был зарегистрирован 8 июля 2025 года через Namecheap, что совпадает с периодом внедрения вредоносного кода. Функция update_entry_detail, вызываемая при каждой загрузке плагина через хук plugins_loaded, собирала конфиденциальные данные о WordPress-установке: URL сайта, имя администратора, версию ядра, список активных плагинов и тем, информацию о пользователях и системное окружение. Эти данные передавались на удаленный сервер, который в ответ отправлял инструкции для создания скрытых файлов.

Особую тревогу вызывает техника подмены легитимных файлов: вредоносный код маскировался под системный файл wp-includes/bookmark-canonical.php, содержащий класс WP_Content_Manager. Под видом инструментов управления контентом этот класс реализовывал функции удаленного выполнения кода через уязвимые обработчики handle_posts, handle_media и handle_widgets. Каждый из этих обработчиков содержал вызов функции eval, принимающей произвольный код в параметрах запроса, что позволяло злоумышленникам выполнять команды на сервере без аутентификации.

Второй канал атаки через функцию list_sections в файле notification.php предоставлял злоумышленникам расширенный контроль. Используя статический токен Cx3VGSwAHkB9yzIL9Qi48IFHwKm4sQ6Te5odNtBYu6Asb9JX06KYAWmrfPtG1eP3, атакующие могли создавать административные учетные записи, удалять пользователей, загружать произвольные файлы, просматривать содержимое директорий и выполнять собственный PHP-код через base64-декодирование в параметре gf_formula. Это создавало полноценный бэкдор для полного контроля над зараженными сайтами.

Оперативная реакция сообщества безопасности предотвратила массовое распространение угрозы. Ключевые меры включали: блокировку домена gravityapi.org регистратором Namecheap, экстренный выпуск чистой версии плагина 2.9.13 и масштабное сканирование хостинг-провайдерами на предмет индикаторов компрометации. Анализ показал, что зараженная версия 2.9.12 распространялась ограниченное время преимущественно через ручные загрузки и установку через Composer.

Для администраторов сайтов критически важно немедленно обновить GravityForms до версии 2.9.13 и проверить системы на наличие следов компрометации. Ключевые индикаторы включают HTTP-запросы к notification.php с параметром gf_api_token, файл wp-includes/bookmark-canonical.php с нестандартным содержимым, а также попытки соединений с IP-адресом 193.160.101.6. Рекомендуется провести аудит пользовательских учетных записей на предмет неавторизованных администраторов и просканировать файловую систему на предмет недавно созданных исполняемых файлов.

Данный инцидент подчеркивает растущие риски supply chain-атак в экосистеме WordPress. Разработчикам следует усилить контроль целостности дистрибутивов, внедрить многофакторную аутентификацию для доступа к репозиториям и реализовать системы мониторинга аномальной сетевой активности. Пользователям необходимо всегда проверять хеш-суммы загружаемых плагинов и использовать решения для обнаружения подозрительного поведения PHP-кода. Без совместных усилий сообщества по созданию многоуровневой защиты подобные атаки будут повторяться, ставя под угрозу миллионы сайтов по всему миру.

Индикаторы компрометации

IPv4

  • 185.193.89.19
  • 193.160.101.6

Domains

  • gravityapi.io
  • gravityapi.org
Комментарии: 0