В Forminator Forms без авторизации можно было загрузить исполняемый PHP-файл

WordPress

В WordPress-плагине Forminator Forms, который используют более 600 тысяч сайтов, обнаружена и закрыта критическая уязвимость, связанная с произвольной загрузкой файлов. Проблема позволяла неавторизованному злоумышленнику загрузить на сервер исполняемый PHP-файл, что ведёт к удалённому выполнению кода и полному захвату сайта. Разработчики выпустили исправление в версии 1.56.2, и пользователям настоятельно рекомендуется обновиться.

Уязвимость CVE-2026-15748

Уязвимость получила идентификатор CVE-2026-15748 и рейтинг 9.8 балла по шкале CVSS (система оценки критичности уязвимостей), что соответствует критическому уровню опасности. Она затрагивает все версии плагина до 1.56.1 включительно. Обнаружил проблему исследователь под псевдонимом daroo, который сообщил о ней через программу вознаграждений Wordfence Bug Bounty и получил за находку 2048 долларов.

Forminator Forms - это конструктор форм для WordPress, позволяющий создавать контактные формы, опросы и формы с загрузкой файлов. Уязвимость возникает из-за сочетания нескольких ошибок в обработке данных, поступающих из формы. Чтобы атака сработала, на странице должна быть опубликована форма, содержащая одновременно поле загрузки файла и поле выбора из списка. Само по себе поле выбора может быть любым и не связано с полем загрузки. Оно используется лишь как носитель подделанных данных.

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

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

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

Разработчики плагина получили уведомление об уязвимости 14 июля 2026 года, подтвердили её 20 июля и выпустили исправленную версию 1.56.2 уже 31 июля. Такая скорость важна, поскольку критические уязвимости в популярных плагинах часто остаются неисправленными неделями, а в этот период они могут активно использоваться в атаках. В данном случае патч выпущен менее чем через три недели после подтверждения проблемы.

Пользователям Forminator Forms необходимо как можно скорее обновить плагин до версии 1.56.2. Сделать это можно через стандартный интерфейс обновлений WordPress. Кроме того, следует проверить настройки хранения загружаемых файлов, особенно если использовалась пользовательская папка. Владельцам сайтов с большим количеством форм и высокими требованиями к безопасности стоит также рассмотреть дополнительные меры защиты, такие как контроль целостности файлов и регулярное резервное копирование.

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

Ссылки

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