Плагин Backuply для WordPress, установленный более чем на 600 тысячах сайтов, содержит уязвимость внедрения SQL-кода второго порядка. Пользователь с правами подписчика и выше сохраняет вредоносную полезную нагрузку в поле биографической информации своего профиля. Срабатывает она позже, когда администратор восстанавливает резервную копию базы данных, и приводит к полному захвату сайта: атакующий получает учетную запись администратора. Опасность уязвимости оценили в 8,0 балла по шкале CVSS, это высокая степень. Проблема получила идентификатор CVE-2026-93953 и затрагивает все версии Backuply до 1.5.8 включительно.
CVE-2026-93953 в Backuply и риск захвата сайта
Backuply отвечает за резервное копирование, восстановление, перенос и клонирование сайтов на WordPress. При создании копии плагин выгружает содержимое базы данных в набор SQL-команд, а при восстановлении выполняет их одну за другой. Вредоносные данные попадают в этот набор заранее и ждут своего часа.
Внедрение SQL-кода второго порядка отличается от обычного тем, что опасная строка не срабатывает в момент отправки. Сначала она хранится как обычный текст. Любой зарегистрированный пользователь может вписать произвольное значение в поле биографической информации, и WordPress сохранит его в таблице с данными о пользователях.
Проблема возникает на этапе восстановления копии. При выгрузке значение биографии попадает в команду вставки как обычный текст, с корректным экранированием. При восстановлении плагин определяет старый префикс таблиц сайта с помощью шаблона поиска по тексту команды. Шаблон не привязан к заголовку команды создания таблицы и не пропускает значения в кавычках, поэтому срабатывает и на содержимом сохраненной биографии. Найденный фрагмент без проверки подставляется в отдельный запрос обновления.
Атакующий подбирает биографию так, чтобы этот фрагмент оказался не префиксом, а готовой SQL-командой. Символ комментария в конце отбрасывает служебную часть запроса, и выполняется только команда злоумышленника, причем с полными правами доступа к базе данных.
Команда меняет настройки сайта: включает открытую регистрацию и назначает новым учетным записям роль администратора. Читать данные напрямую атакующий не может, потому что запрос выполняется внутри операции вставки и ответа не возвращает; изменять записи он может. После восстановления копии ему достаточно зарегистрироваться обычным способом, и система сама выдаст новой учетной записи права администратора.
Для срабатывания нужен еще один шаг. Администратор должен восстановить копию, созданную после того, как атакующий сохранил свою биографию. Создание и восстановление копий - основная задача плагина, так что речь идет об обычной операции, которую владельцы сайтов выполняют регулярно.
Нашел уязвимость исследователь под псевдонимом daroo. О находке он сообщил 17 сентября 2026 года через программу Wordfence Bug Bounty (программа выплат за обнаруженные уязвимости) и получил вознаграждение 1 352 доллара. Специалисты Wordfence подтвердили проблему 19 сентября, разработчиков Backuply уведомили 28 сентября, а 1 октября вышел исправленный выпуск 1.5.9, который закрывает уязвимость.
Обновление до 1.5.9 полностью закрывает проблему, и откладывать его не нужно. Пока сайт работает на прежней версии, защиту дает только правило межсетевого экрана: у платных пользователей Wordfence оно уже действует, бесплатные подключат его 24 октября. Владельцам сайтов имеет смысл просмотреть список учетных записей с правами администратора, поскольку эксплуатация уязвимости приводит к появлению новой учетной записи с полным доступом.
Backuply установлен на сотнях тысяч сайтов, а восстановление копий остается для их владельцев привычной операцией. Отложенные внедрения SQL-кода в таких инструментах отличаются тем, что между сохранением вредоносного значения и его срабатыванием проходит время, и заметить угрозу в этот промежуток почти нечем.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-93953
- https://www.wordfence.com/threat-intel/vulnerabilities/id/202a2d02-a069-43d1-9ebe-59828e828c03