Elementor Pro версий 4.2.1 и ниже могут быть подвержены уязвимости удаленного выполнения кода (RCE) без аутентификации через поле загрузки файлов в виджете Forms; проблема устранена в версии 4.2.2, поэтому сайтам, использующим старый код, следует немедленно обновиться.

Суть бага

Уязвимость имеет рейтинг CVSS 9.0, что означает, что злоумышленник, имеющий доступ к уязвимому сайту, может выполнять произвольный PHP-код на сервере без входа в систему или предоставления каких-либо учетных данных. Проблема заключается в том, как Elementor Pro обрабатывает загрузку файлов в своем виджете Forms. Плагин выполняет два отдельных цикла: один проверяет каждый загружаемый файл, а другой сохраняет файл в общедоступную директорию загрузок.

Злоумышленник может сформировать один запрос, содержащий два файла. Первому файлу присваивается пустое имя, из-за чего цикл валидации пропускает его проверку. Второй файл — вредоносный PHP-скрипт — проходит через второй цикл и записывается в публичную папку. Поскольку Elementor Pro присваивает загруженным файлам имена на основе временной метки, злоумышленник может предсказать имя файла и позже запросить его напрямую, чтобы запустить код.

Как возникла уязвимость

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

Кто находится в зоне риска

Под угрозой находится любой сайт WordPress, на котором установлена Elementor Pro версии 4.2.1 или более ранней. Поскольку эксплойт не требует аутентификации, уязвимыми являются даже сайты с ограниченным доступом для администраторов. Успешная эксплуатация дает злоумышленнику полный контроль над хостингом, открывая возможности для кражи данных, дефейса сайта или развертывания программ-вымогателей.

Что делать сейчас

  • Проверьте установленную версию с помощью команды WordPress CLI:

    wp plugin list --name=elementor-pro --field=version
    
  • Если результат показывает версию 4.2.1 или ниже, немедленно обновитесь до 4.2.2 или более поздней версии. Обновление заменяет ошибочную логику загрузки единой атомарной процедурой валидации и сохранения, которая блокирует обход с пустым именем.

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

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

Контраргумент

Некоторые разработчики утверждают, что риск ограничен, так как для эксплойта требуется, чтобы виджет Forms был настроен с полем загрузки файлов, доступным публично. Однако многие сайты на базе Elementor используют такие формы для контактов, подачи заявок на работу или пользовательского контента, что делает это условие достаточно распространенным, чтобы уязвимость была признана критической.

За чем следить дальше

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

Итог: Уязвимость RCE в Elementor Pro 4.2.1 и более ранних версиях — это вектор атаки высокой степени серьезности, не требующий входа в систему. Обновление до 4.2.2 — единственная надежная защита; промедление подвергает ваш сервер и данные серьезному риску.