Если на вашем сайте стоит плагин Bricksforge версии 3.1.8.9 или старше, обновите его до 3.1.8.10 или новее сегодня же, а затем проверьте сайт на следы взлома. Уязвимость CVE-2026-85097 позволяет постороннему человеку без пароля загрузить на сайт PHP-файл и выполнить его, а массовые атаки на неё начались 7 октября 2026 года.
Типичная картина выглядит так. Сайт собрали полгода назад на конструкторе Bricks, форму заявки сделали через дополнение, а потом про плагины никто не вспоминал: сайт работает, заявки приходят. Для такого сайта выход патча ничего не меняет, пока кто-то не нажмёт кнопку «Обновить». Автоматические сканеры не ждут, когда владелец прочитает новости, и перебирают адреса сайтов круглые сутки.
Что случилось с Bricksforge и кого это касается
Bricksforge — это дополнение к конструктору Bricks Builder для WordPress, которое, среди прочего, добавляет расширенные формы. В версиях до 3.1.8.9 включительно нашли критическую уязвимость в обработке файлов, прикреплённых к форме. Ей присвоен номер CVE-2026-85097, а оценка опасности зависит от источника: у Patchstack она составляет 10.0 из 10, у Wordfence — 9.8.
Хронология по публикации Patchstack такая: первую попытку эксплуатации компания зафиксировала 7 октября 2026 года в 21:47 по UTC, разбор уязвимости вышел 8 октября, а 12 октября о проблеме написал SecurityWeek. Исправленная версия — 3.1.8.10. По оценке Patchstack, плагином пользуются около 6000 сайтов. Для рынка это немного, но каждый такой сайт, не получивший обновления, остаётся открытым для атаки.
Кого касается проблема: любого, кто строил сайт на Bricks и подключал Bricksforge. Если вы заказывали сайт у подрядчика и не знаете, что внутри, проверить это можно за пару минут, о чём ниже.
Чем опасна загрузка файла без пароля
Уязвимость типа «неаутентифицированная загрузка произвольного файла» — это ошибка, при которой сайт принимает файл от любого посетителя и позволяет ему оказаться там, где сервер исполняет код. Злоумышленнику не нужен ни логин, ни пароль, ни доступ к админке.
Результат называется удалённым выполнением кода (RCE): атакующий запускает на вашем сервере собственные команды. На практике это может означать установку скрытого входа в сайт, рассылку спама с вашего домена, подмену страниц, встраивание чужих рекламных ссылок в выдачу или кражу данных из заявок. Поисковики такой сайт нередко помечают как опасный, и восстановление репутации занимает недели.
Patchstack описывает механику так: плагин проверяет тип файла при первой загрузке, но позже на этапе отправки формы доверяет данным, которые прислал сам клиент, в частности полю url внутри параметра temporaryFileUploads. Злоумышленник загружает файл, который выглядит как картинка, но содержит PHP-код, а затем указывает в форме адрес с PHP-расширением. Плагин записывает содержимое по этому адресу, и код начинает выполняться.
Как идут атаки: что видно по данным Patchstack
Атаки автоматические, а не прицельные. Patchstack наблюдал 63 уникальных IP-адреса, при этом шесть самых активных дали около 46 процентов запросов. Почти все запросы шли на адрес /wp-json/bricksforge/v1/form_submit, ещё один — на /wp-admin/admin-ajax.php. Примерно в 95 процентах случаев серверный путь указывал на файл .gif или .png, а адрес назначения — на что-то с PHP.
Атакующие пробовали альтернативные расширения вроде .phtml и .php5, менять регистр букв (.PHP, .pHp), кодировать расширение один и два раза. Это значит, что простая защита «запретить загрузку файлов .php» от такого набора не спасёт, если она написана в лоб.
Patchstack не приписывает кампанию одной группировке: источники адресов смешанные — дата-центры, облака, VPN и обычные домашние провайдеры. Блокировать отдельные IP бессмысленно, надо закрывать саму дыру.
Как проверить, установлен ли Bricksforge и какая у него версия
Узнать версию плагина можно в админке за минуту. Порядок действий:
- Откройте в панели WordPress раздел «Плагины» — «Установленные».
- Найдите в списке Bricksforge и посмотрите номер версии под названием.
- Если версия 3.1.8.9 или ниже, плагин уязвим. Если 3.1.8.10 и выше, дыра закрыта, но историю атак всё равно стоит проверить.
- Если плагина в списке нет, вас эта конкретная проблема не касается.
- Если доступа к админке нет, попросите подрядчика прислать скриншот списка плагинов с версиями.
Не полагайтесь на то, что админка сама вовремя напомнит об обновлении: для дополнений от сторонних разработчиков уведомление может не появиться или прийти с опозданием. Номер версии лучше сверять вручную. На проектах B2BPRO.KZ мы смотрим список плагинов отдельным пунктом сопровождения, а не только по автоматическим уведомлениям.
Что делать сегодня: порядок действий
Порядок важен: сначала резервная копия, потом обновление, потом проверка. Обновление не удаляет уже загруженные злоумышленником файлы, поэтому одного клика недостаточно.
- Сделайте резервную копию файлов и базы данных. Если сайт уже взломан, копия всё равно нужна: по ней можно разобраться, что произошло.
- Обновите Bricksforge до 3.1.8.10 или новее. Официальная рекомендация Patchstack именно такая. Если обновление через админку не предлагается, скачайте свежую версию из личного кабинета на сайте разработчика.
- Если обновить прямо сейчас нельзя, Patchstack предлагает правило RapidMitigate для этой уязвимости, которое блокирует попытки на уровне трафика, не меняя код плагина. Это временная мера, а не замена обновлению. Если же формы нужны не срочно, на время деактивируйте плагин.
- Проверьте папки загрузок на лишние PHP-файлы, как описано в следующем разделе.
- Просмотрите журналы сервера за период с 7 октября. Обратитесь за этим к хостинг-провайдеру или администратору.
- Смените пароли администраторов WordPress, доступы по FTP и к базе данных, если нашли подозрительные файлы или сомневаетесь в чистоте сайта.
Как понять, что сайт уже взломан
Следы взлома по этой уязвимости ищут в двух местах: в журнале запросов и в файловой системе. Из рекомендаций Patchstack можно составить такой список признаков:
- запросы на /wp-json/bricksforge/v1/form_submit, где присутствует параметр temporaryFileUploads;
- вызовы bricksforge_regenerate_nonce, после которых сразу идут загрузка и отправка формы;
- повторные отправки, в которых перебираются расширения, кодировки или регистр букв;
- неожиданные PHP-файлы в папке /wp-content/uploads/bricksforge/tmp/ и в других каталогах загрузок, в первую очередь файлы с именем вида login_admin_*.php;
- обращения к только что созданным PHP-файлам в каталогах загрузок.
В папке загрузок PHP-файлов быть не должно вообще: там хранят картинки, документы и архивы. Любой файл с расширением .php, .phtml или .php5 среди медиафайлов — повод остановиться и разобраться. Не удаляйте его сразу: сначала сохраните копию и посмотрите, когда файл создан, а уже потом убирайте. Дата создания подскажет, связан ли он с атакой, и поможет понять, что ещё мог сделать злоумышленник.
Если вредоносный файл найден, одного удаления мало. Нужно искать другие изменения: новых пользователей-администраторов в разделе «Пользователи», незнакомые плагины, правки в файлах темы и в wp-config.php. Безопасный путь в такой ситуации — восстановление из чистой копии до 7 октября с последующим обновлением всех компонентов.
Таблица: что делать в зависимости от ситуации
| Ситуация | Что делать | Срочность |
|---|---|---|
| Bricksforge не установлен | Ничего по этой уязвимости. Проверьте остальные плагины на обновления | В плановом порядке |
| Версия 3.1.8.10 и выше, обновили до атаки | Проверить папку uploads на лишние PHP-файлы для спокойствия | На этой неделе |
| Версия 3.1.8.9 и ниже, подозрительных файлов нет | Копия, обновление до 3.1.8.10 или новее, проверка журналов с 7 октября | Сегодня |
| Версия 3.1.8.9 и ниже, обновить нельзя прямо сейчас | Правило RapidMitigate или временное отключение плагина, затем обновление | Немедленно |
| Нашли PHP-файлы в папках загрузок | Сохранить копию, восстановить чистую версию сайта, сменить пароли, обновить всё | Немедленно |
Что сделать, чтобы следующая дыра не стала проблемой
Дыры в плагинах появляются регулярно, и защита строится не вокруг одной уязвимости. Четыре меры помогают пережить и эту, и следующие.
Первая мера — дисциплина обновлений. Закрепите за конкретным человеком еженедельную проверку списка плагинов и тем. Критические обновления безопасности нельзя откладывать на «когда будет время»: между публикацией патча и массовой атакой проходят дни, а иногда часы. Как безопасно обновлять сайт, мы разбирали на примере обновления WordPress 7.1.3.
Вторая мера — ограничение прав на файлы. Руководство по усилению защиты на developer.wordpress.org советует делать файлы плагинов, а также каталогов wp-admin и wp-includes доступными для записи только вашей учётной записи, а не веб-серверу, и приводит рабочие значения прав: 755 для каталогов и 644 для файлов. Там же показано, как запретить редактирование PHP-файлов из админки константой DISALLOW_FILE_EDIT. Но сама документация честно предупреждает, что это не помешает атакующему загрузить вредоносные файлы на сайт, поэтому такие меры дополняют обновления, а не заменяют их.
Третья мера — запрет исполнения PHP в каталоге загрузок на уровне веб-сервера. Эту настройку в руководстве по hardening не описывают, это общепринятая практика администрирования, которую делает хостинг-провайдер или администратор сервера. Она ломает именно такой сценарий атаки: даже если файл с PHP-кодом оказался в папке uploads, сервер откажется его запускать. Попросите подрядчика проверить, включена ли такая защита на вашем хостинге.
Четвёртая мера — резервные копии вне сайта. Руководство WordPress советует хранить регулярные снимки всей установки, то есть файлов ядра и базы данных, в надёжном месте и сохранять несколько версий. Тогда, если взлом заметили через несколько недель, у вас остаётся копия до заражения. Копия на том же сервере, который взломали, защитой не считается.
Сколько стоит игнорировать обновления
Ответ зависит от сайта. Для визитки без заявок ущерб — это репутация и время на восстановление. Для интернет-магазина и сайта с рекламой в Казахстане простой означает потерянные заказы и сгоревший рекламный бюджет: объявления продолжают показываться, а сайт недоступен или помечен браузером как опасный. К этому добавляются расходы на лечение и повторную проверку в поисковых системах.
На проектах B2BPRO.KZ мы чаще всего видим одну и ту же причину таких историй: сайт сдали заказчику «под ключ» и никто не взял на себя сопровождение. Плагин не обновлялся месяцами, а о проблеме узнали от клиента, которому браузер показал предупреждение. Регулярное сопровождение стоит заметно дешевле, чем разовое лечение взломанного сайта. Если у вас нет человека, который отвечает за обновления, имеет смысл передать это специалистам: подробности о разработке и сопровождении сайтов под ключ есть на нашей странице.
Что проверить кроме Bricksforge
Эта история повод пересмотреть весь набор плагинов, а не только один. Просмотрите список и ответьте себе на несколько вопросов: какие плагины действительно нужны, а какие остались после экспериментов; какие давно не получали обновлений от автора; какие платные и потому обновляются не из каталога WordPress.
Лишние плагины лучше удалить, а не просто отключить: отключённый плагин остаётся в файловой системе, и если в нём есть уязвимость, до неё иногда можно добраться напрямую. То же касается старых тем. Чем короче список компонентов, тем меньше поверхность атаки и тем проще за ней следить. Раз в квартал полезно устраивать ревизию: выписать каждый плагин, понять, какую задачу он решает на сайте, и убрать тот, чью функцию можно заменить штатными средствами WordPress или темы.
Отдельно проверьте формы на сайте. Всё, что принимает данные от посетителей, особенно файлы, — самое чувствительное место. Если форме не нужна загрузка файлов, отключите её. Формы заявок в Казахстане, как правило, собирают имя и телефон, а вложения в них нужны редко.
Почему формы с загрузкой файлов — главная точка риска
Форма с загрузкой файлов — это единственное место, где посторонний человек может положить что-то на ваш сервер. Всё остальное на сайте он лишь читает. Поэтому разработчики плагинов обязаны проверять тип файла, его расширение, содержимое и место, куда он сохраняется, на каждом этапе, а не один раз при загрузке. Ровно этот принцип нарушен в случае Bricksforge: проверка была на первом шаге, а на втором плагин поверил данным от клиента.
Чем меньше на сайте функций, принимающих файлы от незнакомых людей, тем меньше шансов, что очередная ошибка в плагине превратится в проблему. Заявке в отдел продаж почти всегда достаточно имени, телефона и короткого сообщения. Загрузка резюме, чертежей или документов оправдана только там, где это действительно нужно бизнесу, и такую форму стоит держать под особым наблюдением.
Как поговорить с подрядчиком, который делал сайт
Если сайт собирал внешний исполнитель, задайте ему несколько конкретных вопросов и попросите письменный ответ. Это обычная управленческая гигиена, а не недоверие.
- Какие плагины и какие версии стоят на сайте сейчас и когда их обновляли в последний раз?
- Кто отвечает за обновления после сдачи проекта и входит ли это в договор?
- Где хранятся резервные копии, как часто они делаются и когда последний раз проверялось восстановление?
- Запрещено ли выполнение PHP в каталоге загрузок и какие права выставлены на файлы?
- Есть ли на сайте формы с загрузкой файлов и действительно ли они нужны?
Если на эти вопросы никто не может ответить, у сайта нет владельца в смысле безопасности. Именно такие сайты первыми попадают под массовые автоматические атаки: сканеру всё равно, чей это бизнес и насколько он крупный, ему важна только версия плагина.
Памятка для руководителя: пять минут на проверку
Если времени мало, пройдите по короткому списку. Он не заменяет полноценный аудит, но отсекает самые опасные ситуации.
- Откройте список плагинов и проверьте версию Bricksforge, если он есть.
- Убедитесь, что у всех плагинов нет ожидающих обновлений, особенно помеченных как исправления безопасности.
- Спросите у хостинга или подрядчика, есть ли свежая резервная копия не старше суток и где она лежит.
- Посмотрите раздел «Пользователи» и убедитесь, что среди администраторов нет незнакомых учётных записей.
- Назначьте ответственного, который раз в неделю будет повторять эти четыре шага.
Одна проверка раз в неделю занимает десять-пятнадцать минут и избавляет от самого неприятного сценария, при котором о взломе сайта вы узнаёте от клиента или из выдачи поисковой системы. Если в проверке что-то вызвало сомнение, лучше сразу вызвать специалиста, чем гадать: пока вы выясняете, уязвимый плагин продолжает принимать запросы.
Частые вопросы
Как узнать, что мой сайт на WordPress использует Bricksforge?
Откройте в админке раздел «Плагины» — «Установленные» и найдите Bricksforge в списке. Рядом с названием указана версия. Если плагина нет, эта уязвимость вас не касается. Если доступа в админку нет, попросите разработчика прислать скриншот списка плагинов с номерами версий: это занимает пару минут и снимает вопрос.
Достаточно ли просто обновить плагин до 3.1.8.10?
Нет, обновление закрывает дыру, но не удаляет файлы, которые уже могли загрузить. После апдейта проверьте папку /wp-content/uploads/ на неожиданные PHP-файлы, особенно в подкаталоге bricksforge/tmp, и просмотрите журналы запросов с 7 октября 2026 года. Если сайт был уязвим и стоял без защиты, проверка обязательна.
Можно ли защитить сайт, если обновить плагин прямо сейчас не получается?
Да, на время. Patchstack предлагает правило RapidMitigate для CVE-2026-85097, которое блокирует попытки эксплуатации на уровне трафика, не меняя код плагина. Другой вариант — временно деактивировать Bricksforge. Это временные меры: как только появится возможность, нужно обновиться до 3.1.8.10 или новее.
Что значит оценка 10.0 или 9.8 по шкале CVSS?
CVSS — международная шкала опасности уязвимостей от 0 до 10, где значения от 9 считаются критическими. Две оценки для одной проблемы получились потому, что Patchstack и Wordfence считают их по-разному: 10.0 и 9.8 соответственно. На практике разница не важна: уязвимость критическая, а атаки уже идут.
Нужно ли менять пароли после обновления?
Если следов взлома не нашли, срочной необходимости нет, но смена паролей администраторов не помешает. Если нашли подозрительные PHP-файлы или новых администраторов, пароли WordPress, FTP и базы данных меняйте обязательно, а сам сайт лучше восстановить из чистой копии до 7 октября.
