SQL-инъекция в All-in-One WP Migration: как работает атака через трекбек и что делать

SQL-инъекция в All-in-One WP Migration: как работает атака через трекбек и что делать

SQL-инъекция в плагине All-in-One WP Migration and Backup (CVE-2026-19949) позволяет неаутентифицированному атакующему через трекбек внедрить вредоносный код, украсть секретный ключ ai1wm_secret_key и выполнить произвольный код на сервере WordPress. Разбираем реальную полезную нагрузку из спам-комментария, механику уязвимости и способы защиты.

Описание

Что случилось

В комментариях на сайте под управлением WordPress обнаружена SQL-конструкция, отмеченная как спам. Это попытка эксплуатации уязвимости CVE-2026-19949 в плагине All-in-One WP Migration and Backup от компании ServMask. Уязвимость затрагивает все версии плагина вплоть до 7.109, исправление вышло в версии 7.110 20 августа 2026 года. Оценка по шкале CVSS: 8,8 из 10, высокий уровень риска. Плагин установлен более чем на пяти миллионах сайтов WordPress.

попытка эксплуатации уязвимости CVE-2026-19949

Разбор полезной нагрузки

Вот фрагмент SQL-инъекции, которая пришла в комментарии:

Это не случайный набор символов, а осмысленный код для кражи конкретного значения из базы данных. Разберём его по частям:

  • 0x616931776d5f7365637265745f6b6579: hex-строка, декодируется как ai1wm_secret_key, секретный ключ плагина All-in-One WP Migration.
  • 0x636f6d6d656e74: hex для слова comment, инъекция нацелена на таблицу комментариев.
  • SELECT option_value FROM SERVMASK_PREFIX_options WHERE option_name=...: подзапрос, извлекающий значение секретного ключа. SERVMASK_PREFIX это шаблон, вместо которого подставляется реальный префикс таблиц, например wp_.
  • /**/: вставки-комментарии для обхода фильтров и WAF.
  • # в конце: обрезает остаток оригинального SQL-запроса.
  • Структура запроса показывает, что результат подзапроса пытаются записать в поле комментария, чтобы потом прочитать его публично.

Проще говоря, атакующий пытался вытащить секретный ключ плагина и сохранить его в одобренном комментарии. Оттуда ключ забирается через открытый интерфейс WordPress.

Что такое CVE-2026-19949

CVE-2026-19949 это отложенная SQL-инъекция (second-order SQL injection) в плагине All-in-One WP Migration and Backup. Её особенность в том, что вредоносные данные сначала попадают в базу и лежат там незаметно, а срабатывают позже, в другом контексте. В этом случае закладка активируется, когда администратор восстанавливает резервную копию сайта.

Уязвимость относится к классу неаутентифицированных SQL-инъекций: для её эксплуатации не нужен вход в админку WordPress. Достаточно оставить трекбек на публичной записи.

Как работает атака через трекбек

Трекбек это уведомление о том, что кто-то поставил ссылку на вашу запись. WordPress принимает такие уведомления на публичных записях, и для этого не нужен вход в систему. Оставить трекбек может любой человек.

Механика атаки выглядит так:

  • Злоумышленник выбирает публичную запись WordPress с включёнными пингами.
  • Отправляет трекбек со специально подготовленным именем сайта и URL, содержащими обратные слэши и другие символы.
  • WordPress сохраняет данные в таблице комментариев, не удаляя необычные последовательности.
  • Администратор выполняет экспорт, а затем импорт резервной копии.
  • При восстановлении архива полезная нагрузка превращается в исполняемый SQL-код.

По данным исследователя безопасности Джека Тейлора, который обнаружил проблему, атака использует два специальных трекбека. Первый замедляет восстановление и заставляет плагин приостановиться на промежуточной транзакции, так нужное значение оказывается в таблице опций. Второй извлекает это значение и помещает его в комментарий со статусом одобренного.

Где ломается плагин

Плагин создаёт резервную копию в формате .wpress, куда входят файлы сайта и дамп базы данных. При восстановлении он разбирает SQL-запросы и заменяет адреса старого сайта и префиксы таблиц на новые. Для поиска строк в кавычках используется регулярное выражение, которое проверяет только один символ прямо перед закрывающей кавычкой, а всю последовательность обратных слэшей не анализирует. Из-за этой ошибки плагин неправильно определяет, где заканчивается строка. Данные, которые подставил злоумышленник, выходят за границу строки и превращаются в исполняемый SQL-код.

От кражи ключа до полного захвата сайта

Секретный ключ ai1wm_secret_key защищает функцию импорта плагина. Сама функция доступна без авторизации, но требует знания ключа. Именно его и добывает злоумышленник через SQL-инъекцию.

Получив ключ, атакующий обращается к функции импорта и отправляет специально созданный архив .wpress. Внутри архива лежит вредоносный must-use плагин, модуль WordPress, который подключается автоматически при каждом запросе к сайту. Код выполняется с правами веб-сервера при открытии любой страницы. Результат: полный захват сайта, включая чтение и изменение файлов, установку скриптов удалённого управления, кражу данных пользователей и закрепление в системе.

Почему нельзя рассчитывать на "ручное действие"

Эксплуатация требует, чтобы администратор хотя бы раз выполнил экспорт и импорт резервной копии. Но именно эти операции для плагина миграции штатные, ради них он и существует. Wordfence предупреждает, что рассчитывать на это условие как на защиту нельзя. Злоумышленник может внедрить трекбек заранее и ждать, пока владелец сайта выполнит плановый перенос или восстановление.

Хронология раскрытия уязвимости

Уязвимость прошла через программу Bug Bounty компании Wordfence. Исследователь Джек Тейлор сообщил о проблеме 14 августа 2026 года и получил вознаграждение 5 761 доллар. Wordfence передала детали разработчику ServMask 15 августа, тот подтвердил отчёт 17 августа и выпустил исправленную версию 7.110 уже 20 августа 2026 года. От первого сообщения до патча прошло меньше недели.

Как защититься от SQL-инъекции в All-in-One WP Migration

Если плагин All-in-One WP Migration and Backup установлен, обновите его до версии 7.110 или более новой. Это главная и обязательная мера.

Дополнительные рекомендации:

  • Отключите приём трекбеков и пингов там, где они не нужны.
  • Просмотрите комментарии на предмет подозрительных автоматических записей с необычными обратными слэшами в имени или ссылке и с SQL-кодом внутри.
  • Убедитесь, что в последнее время никто не восстанавливал архив без вашего ведома.
  • Проверьте папку wp-content/mu-plugins/ на посторонние модули.
  • Смените значение ai1wm_secret_key в базе данных при подозрении на компрометацию.
  • Проверьте логи на обращения к wp-trackback.php и REST API комментариев с подозрительными параметрами.

Вывод

Уязвимость CVE-2026-19949 уже не существует только в теории. Полезные нагрузки рассылаются по интернету, и обнаруженный комментарий это подтверждает. Отложенная SQL-инъекция плюс кража секретного ключа превращают обычное восстановление резервной копии в цепочку для выполнения чужого кода. Своевременное обновление плагина All-in-One WP Migration остаётся главной мерой защиты, а дополнительный контроль за публичными функциями WordPress заметно снижает риск.

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

IPv4

  • 85.105.178.126
Комментарии: 0