В популярном плагине WPvivid Backup & Migration для WordPress обнаружена критическая уязвимость, позволяющая загрузку произвольных файлов и, как следствие, удаленное выполнение кода (RCE) без аутентификации. Под угрозой находятся более 900 000 сайтов, использующих этот инструмент для резервного копирования и миграции WordPress.
Основные детали уязвимости WPvivid Backup & Migration (CVE-2026-1357)
Уязвимость получила идентификатор CVE-2026-1357 и оценку 9,8 по шкале CVSS, что соответствует критическому уровню риска и означает потенциальную полную компрометацию сайта. Проблема затрагивает все версии плагина до 0.9.123 включительно.
Исследователь Лукас Монтес (Lucas Montes), известный под псевдонимом NiRoX, сообщил об уязвимости компании Defiant 12 января 2026 года. Разработчики WPVividPlugins получили уведомление 22 января, а исправление было оперативно выпущено в версии 0.9.124 от 28 января 2026 года.
Кто действительно под угрозой: условия эксплуатации уязвимости
Несмотря на высокий CVSS-балл, специалисты Defiant отмечают, что в реальных условиях уязвимость опасна не для всех установок WPvivid. Критическим фактором является активация опции «receive backup from another site» (получение резервной копии с другого сайта).
Эксплуатация возможна только при выполнении двух условий:
- на сайте включена функция приема бэкапов с других ресурсов;
- злоумышленник успевает действовать в пределах 24 часов – именно столько живет ключ, используемый для передачи резервных копий между сайтами.
Однако в практической эксплуатации WordPress плагины резервного копирования и миграции, включая WPvivid, часто используются как раз для переноса сайтов между хостингами. Администраторы нередко включают опцию приема бэкапов хотя бы временно, что увеличивает реальную поверхность атаки.
Технический разбор: от криптографии к загрузке произвольных файлов
Ошибка обработки RSA-дешифрования и предсказуемый ключ
Корень уязвимости связан с некорректной обработкой ошибок при RSA-дешифровании в сочетании с дальнейшим использованием AES (Rijndael). В плагине используется функция openssl_private_decrypt(). В случае сбоя она возвращает значение false, однако код плагина не прерывал выполнение и передавал этот результат в криптографическую рутину AES.
Криптобиблиотека интерпретировала false как строку, состоящую из нулевых байтов. В итоге формировался предсказуемый и фиксированный ключ шифрования. Зная это поведение, атакующий мог сгенерировать корректно выглядящий, но злонамеренный пейлоад, который плагин принимал как легитимный бэкап.
Directory traversal и запись файлов за пределами каталога бэкапов
Вторая составляющая уязвимости — отсутствие корректной очистки имен файлов при загрузке резервных копий. Это открыло возможность атак типа directory traversal, когда с помощью последовательностей вроде ../ злоумышленник может выйти за пределы целевого каталога.
В результате атакующий получал возможность:
- записывать произвольные файлы за пределами директории для бэкапов;
- размещать вредоносные скрипты в веб-доступных каталогах (например, в корне сайта или в
wp-content/uploads); - добиваться удаленного выполнения кода, запуская загруженные файлы через HTTP-запрос.
Комбинация предсказуемого ключа шифрования и directory traversal фактически превращала механизм импорта бэкапов в канал для обхода аутентификации и установки веб-оболочек (web shells).
Какие меры защиты реализованы в версии 0.9.124
В релизе WPvivid Backup & Migration 0.9.124 разработчики закрыли CVE-2026-1357 сразу несколькими мерами:
- добавлена проверка результата
openssl_private_decrypt()с немедленной остановкой обработки при неуспешном RSA-дешифровании; - реализована строгая очистка и валидация имен файлов, исключающая directory traversal;
- загрузка ограничена только разрешенными типами файлов — такими как ZIP, GZ, TAR и SQL, что снижает риск загрузки исполняемых скриптов.
Эти изменения существенно сокращают вектор атаки и возвращают функциональность импорта бэкапов к изначальному, более безопасному сценарию использования.
Администраторам настоятельно рекомендуется немедленно обновить плагин до версии 0.9.124 или выше. Оставаться на уязвимых сборках до 0.9.123 крайне рискованно, особенно если ранее активировалась опция приема резервных копий с других сайтов.
Помимо обновления WPvivid, целесообразно пересмотреть общие практики безопасности WordPress: отключать ненужные функции импорта и удаленного доступа, ограничивать доступ к админ-панели по IP или VPN, использовать WAF для фильтрации вредоносных запросов, а также внедрять мониторинг целостности файлов. Такой многоуровневый подход снижает вероятность успешной эксплуатации даже неизвестных уязвимостей и помогает вовремя заметить компрометацию.