Elementor Pro: загрузка PHP-файла без аутентификации ведёт к RCE
Elementor Pro 4.2.1 позволяет загружать PHP-файлы
Уязвимость в плагине Elementor Pro версии 4.2.1 и ниже позволяет злоумышленникам загружать PHP-файлы на сервер. Это происходит из-за ошибки в обработке полей загрузки файлов в модуле форм. Уязвимость получила идентификатор CVE-2026-32475. Её критичность оценена в 9.0 по шкале CVSS.
Модуль загрузки файлов Elementor Pro обрабатывает файлы некорректно
Elementor Pro — это премиум-расширение для конструктора страниц Elementor. Оно добавляет виджет форм, который позволяет пользователям создавать формы обратной связи, подачи заявок на работу и поддержки. В виджет форм встроен функционал загрузки файлов, позволяющий посетителям сайта прикреплять документы.
Уязвимость находится в модуле форм, в поле File Upload. При отправке формы плагин выполняет проверку расширения файла и перемещение файла в две отдельные итерации. Разработчики Elementor Pro использовали разный подход к обработке пустых записей файлов в этих итерациях. Это несоответствие позволяет злоумышленнику обойти проверку расширений и записать PHP-файл в общедоступный каталог.
Проверка расширения файла осуществляется методом validation(). Он проверяет расширение каждого файла по списку разрешенных и запрещенных типов. Метод get_blacklist_file_ext() содержит список запрещенных расширений, включая 'php'. Однако проверка не выполняется, если первая часть загружаемого файла пуста. Метод process_field() перемещает файл в каталог, даже если первая часть была пустой. Таким образом, валидатор считает отправку корректной, так как он прекратил обработку, а перемещающий механизм продолжает работу.
Злоумышленник может отправить два файла для одного поля: пустой файл первым, а затем PHP-файл. Это позволяет обойти проверку списка запрещенных расширений. PHP-файл будет сохранен в каталоге wp-content/uploads/elementor/forms/. Это общедоступный каталог, что позволяет злоумышленнику выполнить удаленное выполнение кода (RCE) на сервере, получив доступ к файлу напрямую.
Для эксплуатации уязвимости требуется наличие на сайте опубликованной страницы с виджетом Form и полем File Upload. Поле "Обязательное" по умолчанию отключено, что упрощает атаку.
Обновиться до версии 4.2.2 или установить плагин безопасности
Разработчики Elementor Pro выпустили исправление уязвимости в версии 4.2.2. Обновление синхронизирует обработку пустых записей файлов в обеих итерациях. Теперь проверка расширения выполняется непосредственно перед перемещением файла. Это предотвращает загрузку недопустимых файлов.
Пользователи Elementor Pro должны обновить плагин до версии 4.2.2 или выше. Сайты, на которых использовалась уязвимая версия с общедоступным полем загрузки файлов, должны проверить каталог wp-content/uploads/elementor/forms/ на наличие файлов, не соответствующих ожидаемым типам документов или изображений, особенно файлов с расширением .php.
Компания Patchstack предоставила правила для защиты от эксплуатации данной уязвимости. Пользователи сервиса защищены.
Опубликовано в канале 27 августа, 12:36
Каждый материал сайта выходит в канале в тот же момент.
Источники: Patchstack · Wordfence