Бэкдор в обновлении Smart Slider 3 Pro: шесть часов, которые поставили под удар сотни тысяч сайтов

7 апреля 2026 года через официальные серверы обновлений компании Nextend была распространена троянизированная версия популярного WordPress- и Joomla-плагина Smart Slider 3 Pro. Версия 3.5.1.35 содержала многослойный бэкдор, и прежде чем атаку обнаружили и вредоносный пакет убрали, прошло примерно шесть часов. Для контекста: у Smart Slider 3 больше 800 000 активных установок, если считать бесплатную и Pro-редакции вместе. Пострадала только Pro-версия, бесплатная не затронута.
Бэкдор в обновлении Smart Slider 3 Pro: шесть часов, которые поставили под удар сотни тысяч сайтов
Изображение носит иллюстративный характер

Компания Patchstack, специализирующаяся на безопасности WordPress, проанализировала инцидент и назвала его «классической атакой на цепочку поставок». Суть в том, что вредоносный код пришёл через доверенный канал — штатную систему обновлений Nextend. Это значит, что стандартные защитные механизмы сайтов — файрволы, проверка nonce-токенов, контроль ролей — были бесполезны. Плагин обновлялся как обычно, администратор мог даже не заметить подвоха.
Начинка бэкдора оказалась не банальным веб-шеллом, а продуманным набором инструментов с несколькими уровнями закрепления. Прежде всего, вредонос умел исполнять произвольный PHP-код и команды операционной системы сервера удалённо, через HTTP-заголовки и скрытые параметры запросов. Фактически атакующий получал полный контроль над сервером.
Отдельно стоит упомянуть скрытую учётную запись администратора. Плагин создавал аккаунт с именем вроде wpsvc_a3f1 и тут же прятал его от глаз настоящих администраторов, модифицируя WordPress-фильтры pre_user_query и views_users. То есть в панели управления этот пользователь просто не отображался. Обнаружить его можно было только при прямом просмотре базы данных.
Закрепление в системе шло сразу в трёх местах. Первое — must-use плагин с именем object-cache-helper.php, маскирующийся под вспомогательный компонент кеширования. Второе — вставка вредоносного кода в файл functions.php активной темы. Третье — файл class-wp-locale-helper.php, подброшенный в директорию wp-includes, то есть прямо в ядро WordPress. Даже если администратор удалял одну из закладок, две оставшиеся продолжали работать.
Собранные данные плагин отправлял на командный сервер с доменом wpjs1[.]com. Список утекавшей информации впечатляет: URL сайта, имя хоста, секретный ключ бэкдора, версии Smart Slider 3, WordPress и PHP, e-mail администратора WordPress, имя базы данных, логин и пароль скрытого аккаунта в открытом виде, а также перечень всех установленных точек закрепления. По сути, атакующий получал полную карту скомпрометированного сайта.
Для обнаружения заражения Patchstack выделила несколько индикаторов компрометации — это кастомные записи в таблице wp_options с отключённым флагом autoload (чтобы не светиться при стандартном дампе опций). Среди них: _wpc_ak (секретный ключ аутентификации), _wpc_uid (ID скрытого админа), _wpc_uinfo (base64-закодированный JSON с логином, паролем и e-mail подставного аккаунта), а также _perf_toolkit_source и wp_page_for_privacy_policy_cache.
Nextend после обнаружения инцидента отключила серверы обновлений, удалила версию 3.5.1.35 Pro и запустила внутреннее расследование. Чистая версия — 3.5.1.36 — уже доступна.
Тем, кто успел установить заражённую версию, одного обновления мало. Нужно вручную удалить файлы object-cache-helper.php, class-wp-locale-helper.php и вычистить вредоносные вставки из functions.php. Из wp-config.php надо убрать строку define('WP_CACHE_SALT', '<token>');, а из .htaccess в корне WordPress — строку WPCacheSalt <token>. В базе данных из таблицы wp_options следует удалить все пять перечисленных выше записей.
После очистки файлов и базы необходимо сменить пароли: администраторские аккаунты WordPress, пароль к базе данных, учётные данные FTP/SSH и пароль от хостинг-аккаунта. Кроме того, стоит просмотреть логи на предмет подозрительных POST-запросов и несанкционированных изменений, включить двухфакторную аутентификацию для всех администраторов и запретить выполнение PHP в директории uploads. Шесть часов — это немного, но для автоматического обновления плагина на тысячах сайтов вполне достаточно.


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

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