Duplicator и Duplicator Pro допускают внедрение PHP-объектов через публичные комментарии

WordPress

Анонимный посетитель оставляет в комментарии значение, которое при миграции сайта превращается в объект программы и запускает выбранное действие. В бесплатной редакции Duplicator такой объект приводит к выполнению команды операционной системы. В Duplicator Pro он удаляет указанный файл. Уязвимость получила идентификатор CVE-2026-82814 и оценку 8.8 по шкале CVSS 3.1, это высокий уровень опасности. Затронуты Duplicator до версии 1.5.17 включительно и Duplicator Pro до версии 4.6.10 включительно, у бесплатной редакции более миллиона активных установок.

CVE-2026-82814 и отложенный запуск объекта при миграции

Проблему нашла команда Wordfence Threat Intelligence 30 августа 2026 года при внутреннем исследовании. Работу вела и проверяла группа под руководством Алекса Томаса, ей помогала ИИ-система Wordfence Argus. Разработчику передали технические детали 31 августа через портал управления уязвимостями. Вендор подтвердил получение отчёта 2 сентября и выпустил Duplicator 5.0.0 8 сентября 2026 года. Спустя две с половиной недели, 25 сентября, он подтвердил, что исправление содержится именно в этой версии. Сведений об эксплуатации уязвимости в реальных атаках нет.

Цепочка от комментария до миграции

Duplicator собирает пакет: архив файлов и базы данных вместе с автономным установщиком, который разворачивает копию на новом месте. При стандартном переносе установщик меняет в базе старые адреса сайта и пути файлов. Если значение хранится как сериализованные данные, то есть записанная структура объекта с длинами строк и именами классов, простая замена ломает структуру. Поэтому движок миграции распознаёт такие значения и восстанавливает из них объект. В уязвимых версиях проверка создаёт объекты любого класса, который указан в данных. Значение можно дополнительно закодировать, движок миграции раскодирует его перед проверкой.

Носителем служит публичная форма комментариев. Учётная запись и проверочный код не нужны. WordPress сохраняет комментарий даже в статусе ожидания модерации, поэтому модерация цепочку не останавливает. Значение лежит в базе до того момента, когда администратор соберёт пакет и запустит миграцию или импорт. Срабатывание происходит на шаге обновления данных, а не при отправке комментария и не при создании резервной копии. Значение должно попасть в базу до сборки пакета, а перенос или импорт должен запустить уже администратор. Режимы восстановления и аварийного возврата к копии другой движок замены не используют, и цепочку через них исследователи не подтвердили.

Duplicator Free выполняет команды операционной системы

В установщике бесплатной версии 1.5.17 осталась старая версия библиотеки Requests. Её классы вместе с классом самого плагина складываются в готовую цепочку. При восстановлении объекта срабатывает функция обратного вызова, указанная в данных, и получает аргумент оттуда же. Так злоумышленник задаёт нужную функцию и команду для неё. Исследователи подтвердили выполнение команды на реальной миграции, с правами пользователя веб-сервера. Ту же цепочку они применили для удаления произвольного файла.

Duplicator Pro удаляет выбранный файл

В Duplicator Pro 4.6.10 библиотека обновилась, и цепочка бесплатной редакции там не работает. Вместо неё в установщик попадает служебный класс, который при уничтожении объекта удаляет файл по пути из своих данных. Удаление проходит, если каталог доступен на запись процессу установщика. Исследователи удалили файл конфигурации WordPress на тестовой установке. Без него WordPress предлагает заново пройти установку. Если злоумышленник успевает первым и подключает свою базу данных, он создаёт нового администратора и получает выполнение PHP-кода через штатную установку плагинов. Базу и учётные данные исходного сайта этот путь не раскрывает.

Обновление до версии 5.0.0 и новые пакеты

Обновить Duplicator и Duplicator Pro до версии 5.0.0 или новее. Удалять старые пакеты не нужно: сами по себе они уязвимость не активируют. Однако внутри остаётся установщик той версии, которая собрала архив, и стандартный импорт запускает устаревший код. Проверка это подтвердила: Duplicator Pro 5.0.5 при импорте пакета от 4.6.10 выполняет прежний установщик. Его же автоматическое восстановление принудительно включает режим восстановления и уязвимый шаг пропускает. Поэтому перед переносом или импортом соберите новый пакет обновлённой версией. Автономные установщики, открытые из интернета и больше не нужные, удалите.

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

Ссылки

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