Критическая уязвимость в плагине WPvivid Backup для WordPress угрожает 800 000 сайтов

vulnerability

В январе 2026 года исследователь кибербезопасности Лукас Монтес (NiRoX) обнаружил и сообщил о критической уязвимости типа Arbitrary File Upload (произвольная загрузка файлов) в популярном плагине WordPress для резервного копирования и миграции - WPvivid Backup. Плагин, установленный более чем на 800 000 сайтов, содержал ошибку, позволяющую неавторизованным злоумышленникам загружать произвольные файлы и выполнять удаленный код (Remote Code Execution, RCE), что обычно ведет к полному захвату сайта. Уязвимости был присвоен идентификатор CVE-2026-1357 и критический рейтинг CVSS 9.8.

Стоит отметить, что критическое воздействие уязвимости распространяется только на пользователей, активировавших в настройках плагина функцию генерации ключа для приема резервных копий с другого сайта. Эта функция по умолчанию отключена. Более того, срок действия ключа можно установить максимум на 24 часа, что ограничивает окно возможной атаки.

Технический анализ уязвимости

Уязвимость была обнаружена в механизме приема резервных копий. Плагин использует функцию "send_to_site()" для обработки входящих данных. Процесс включает расшифровку сессионного ключа с помощью RSA. Однако при неудачной попытке дешифровки функция "openssl_private_decrypt()" возвращала логическое значение "false". Плагин не прерывал выполнение и передавал это значение "false" в библиотеку phpseclib для инициализации AES-шифра.

Библиотека интерпретировала "false" как строку нулевых байтов (null bytes). Следовательно, злоумышленник мог зашифровать вредоносный код (malicious payload), используя предсказуемый ключ из нулевых байтов. После этого плагин принимал имена файлов из расшифрованных данных без должной санитизации (очистки), что позволяло использовать технику directory traversal для выхода за пределы предназначенной для резервных копий директории.

В результате атакующий, не проходя аутентификацию, мог загрузить на сервер произвольный PHP-файл (например, веб-шелл) в публично доступную директорию, отправив специально сформированный запрос к параметру "wpvivid_action=send_to_site". После загрузки доступ к этому файлу позволял выполнить любой код на сервере, что является классическим сценарием полного компрометирования ресурса.

Своевременный ответ и исправление

Исследователь Лукас Монтес сообщил об уязвимости через программу Bug Bounty компании Wordfence 12 января 2026 года, всего через пять дней после ее появления в коде. За это открытие он получил вознаграждение в размере 2145 долларов. Команда Wordfence оперативно провела валидацию отчета и 22 января связалась с разработчиками плагина WPvivid. Уже на следующий день разработчики ответили и приступили к созданию патча.

Исправленная версия плагина 0.9.124 была выпущена 28 января 2026 года. Патч включает два ключевых изменения. Во-первых, в функцию "decrypt_message()" добавлена проверка значения ключа на "false" или пустоту, которая прерывает выполнение при ошибке дешифровки RSA. Во-вторых, в функцию загрузки файла внедрена проверка расширений, разрешающая загрузку только файлов резервных копий (zip, gz, tar, sql) и блокирующая выполнимые скрипты, такие как PHP.

Защита и рекомендации

Основная и самая важная мера защиты - немедленное обновление плагина WPvivid Backup до версии 0.9.124 или выше. Владельцам сайтов на WordPress, использующим этот плагин, настоятельно рекомендуется проверить и обновить его как можно скорее, учитывая критический характер уязвимости. Даже при отключенной по умолчанию уязвимой функции, обновление устраняет потенциальные риски.

Этот инцидент в очередной раз подчеркивает важность ответственного разглашения уязвимостей и эффективного сотрудничества между независимыми исследователями, компаниями по безопасности и разработчиками ПО для поддержания безопасности экосистемы WordPress.

Ссылки

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