Безопасность сайта

Критическая уязвимость Forminator: что проверить владельцам 600 000 сайтов

Forminator Forms установлен более чем на 600 000 сайтов WordPress. В плагине раскрыли критическую уязвимость, и самый пугающий вариант заголовка звучит так: пароль не нужен, атакующий загружает вредоносный файл и получает возможность выполнить код на сервере.

Точная версия требует ещё минуты.

CVE-2026-15748 получила оценку 9,8 из 10. Уязвимы Forminator 1.56.1 и более старые версии, исправление вышло в 1.56.2. Через публичную форму злоумышленник может загрузить файл, который плагин должен был отклонить, в том числе PHP-файл. Если такой файл попадёт в папку, где сервер разрешает выполнение PHP, результатом может стать полный захват сайта.

Серьёзно. Но не все 600 000 установок находятся в одинаковом положении. Разберём реальные условия без лишней паники.


В форме нужна определённая комбинация полей

Для этой атаки в форме Forminator должны одновременно присутствовать поле File Upload для загрузки файлов и поле Select — обычный выпадающий список. Атакующий подделывает значение Select так, чтобы Forminator принял конфигурацию файла, которой доверять нельзя. Это позволяет обойти проверку опасных расширений.

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

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

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


Загрузка файла не всегда означает выполнение кода

Есть второе условие, которое часто теряется в громких заголовках. Стандартная папка загрузок Forminator содержит защиту, предназначенную для блокировки выполнения PHP-файлов. Наибольший риск возникает при использовании Custom File Upload Storage — отдельной папки для загрузок, где такой защиты может не быть.

Иными словами, уязвимость может разрешить произвольную загрузку, но не каждая успешная загрузка автоматически превращается в выполнение кода. Для полноценной RCE загруженный PHP-файл должен оказаться там, где веб-сервер действительно его запустит.

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

У плагина более 600 000 активных установок. Когда история стала публичной, данные о версиях указывали, что примерно половина сайтов всё ещё использует уязвимый выпуск. Поэтому правильный вывод не «взломаны 600 000 сайтов», а «сотням тысяч сайтов нужно проверить номер версии».


Исправление появилось раньше подробного описания

Forminator 1.56.2 вышел в конце июля с короткой строкой в журнале изменений: исправлена уязвимость произвольной загрузки файлов. Подробное техническое описание опубликовали 17 августа, а запись CVE появилась на следующий день.

Такой порядок полезен. Внимательные владельцы успели обновиться до того, как механизм атаки стал широко известен. Но после публикации деталей риск меняется. Злоумышленнику уже не нужно находить ошибку с нуля — достаточно сравнить старый и исправленный код.

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

Урок тот же, что и с недавним обновлением безопасности WordPress 7.0.4: патч полезнее всего до того, как ваш сайт превратился в очередной пример.


Что проверить сегодня

  1. Версию плагина. Если установлен Forminator 1.56.1 или старше, немедленно обновитесь до 1.56.2 или новее.
  2. Все формы Forminator. В первую очередь проверьте формы, где одновременно есть File Upload и Select.
  3. Папку загрузок. Если задан собственный путь, убедитесь, что выполнение PHP там запрещено.
  4. Недавние файлы. Поищите в папках Forminator и пользовательских каталогах незнакомые файлы с расширениями .php и .phtml.
  5. Недавнюю активность. Проверьте новых администраторов, установленные плагины и необъяснимые изменения файлов.

Обновление — первый шаг, а не доказательство того, что до него сайт был чист. Если вредоносный файл загрузили раньше, установка 1.56.2 его не удалит. Мониторинг целостности файлов поможет заметить неожиданные файлы и изменения, если нужная папка входит в область проверки.

На сайтах с регулярным обслуживанием WordPress это обновление должно обойти обычные задачи в очереди. Обновить плагин, проверить формы, посмотреть путь загрузок. Готово. Скучный результат здесь — хороший результат.


Если нашли что-то подозрительное

Не удаляйте первый странный PHP-файл и не считайте работу законченной. Сначала сохраните снимок сайта. Запишите путь и время изменения файла. Проверьте журналы веб-сервера за тот же период, а затем просмотрите администраторов, плагины, запланированные задачи и остальные изменённые файлы.

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

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


Коротко

Forminator 1.56.1 и более старые версии содержат критическую уязвимость, позволяющую без авторизации загружать файлы. Самый прямой путь атаки требует формы с полями File Upload и Select. Для выполнения кода файл также должен попасть в папку, где сервер запускает PHP; особого внимания требуют пользовательские пути загрузки.

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