Критическая уязвимость Gravity Forms грозит захватом сайта

Коротко о главном
В популярном плагине форм для WordPress Gravity Forms устранена критическая уязвимость CVE-2026-84434 (CVSS 9.8): неавторизованный злоумышленник может загрузить исполняемый файл через скрытое поле формы и выполнить произвольный код на сервере. Уязвимы все версии по 3.1.0.4 включительно, исправление — в 3.1.0.5. Уже опубликован публичный proof-of-concept, а CISA внесла проблему в каталог активно эксплуатируемых уязвимостей (KEV). Действие одно: немедленно обновить плагин.
Gravity Forms стоит на сотнях тысяч коммерческих сайтов, поэтому дыра затрагивает не только владельцев блогов, но и бизнес с формами заявок, оплаты и загрузки документов. Если вы ведёте сайт на этой CMS, эта новость — прямой повод для внепланового аудита информационной безопасности и ревизии всех сторонних плагинов, а не только самого Gravity Forms.
Для команд, которые сопровождают проекты на WordPress, случай показателен: критическая RCE прилетела не через ядро, а через логику валидации в стороннем расширении. Именно поэтому разработка и поддержка сайтов на WordPress требуют дисциплины обновлений и контроля цепочки плагинов — атакующему достаточно одной необновлённой формы, чтобы получить веб-шелл.
Что именно нашли
CVE-2026-84434 — это неаутентифицированная произвольная загрузка файла (arbitrary file upload) в функции обработки загрузок Gravity Forms. Корень проблемы — рассогласование между конвейером валидации полей и конвейером сохранения файла. Скрытые поля загрузки файлов (File Upload с видимостью «Hidden») обходят проверку расширения, а «отклонённое» на этапе валидации, но фактически уже принятое тело файла позже передаётся в функцию сохранения без повторной проверки. В результате на сервер попадает файл, который проверка должна была отбросить.
Поскольку атака не требует авторизации, использовать её может любой анонимный посетитель. Условие эксплуатации — на публично доступной странице должна присутствовать форма Gravity Forms, содержащая поле загрузки файла со скрытой видимостью. Это не экзотическая конфигурация: скрытые поля широко применяются в кастомных сценариях, в том числе через сторонние надстройки, поэтому уязвимыми оказываются вполне обычные боевые формы.
Почему это критично: путь к RCE
Разница между «загрузкой лишнего файла» и полным захватом сайта — в том, что именно попадает на сервер. Обход проверки расширения позволяет положить в веб-доступную директорию исполняемый PHP-файл. Дальше атакующий обращается к нему напрямую по URL и запускает код в контексте веб-сервера — это классический веб-шелл. С этого момента под контролем не одна форма, а весь сайт: чтение и модификация базы данных, кража клиентских данных из заявок, установка бэкдоров, рассылка спама, переход к соседним ресурсам на том же хостинге.
Оценка CVSS 9.8 отражает именно этот итог: низкая сложность, отсутствие требований к привилегиям и взаимодействию с пользователем при высоком воздействии на конфиденциальность, целостность и доступность. Для сайтов, которые собирают через формы персональные данные или платёжную информацию, компрометация означает ещё и инцидент с обработкой данных со всеми вытекающими обязательствами.
Активная эксплуатация и статус CISA KEV
Опасность усиливается тем, что уязвимость уже не теоретическая. Публично доступны PoC-инструменты, которые определяют наличие плагина и его версию, обходят публичные страницы в поисках форм Gravity Forms со скрытым полем загрузки и в режиме эксплуатации отправляют multipart-запрос, реализующий произвольную загрузку файла. Такая автоматизация означает массовое сканирование: боты обходят интернет и бьют по всем найденным уязвимым инсталляциям без разбора.
Американское агентство CISA внесло CVE-2026-84434 в каталог известных эксплуатируемых уязвимостей (Known Exploited Vulnerabilities). Попадание в KEV — это подтверждённый факт эксплуатации в реальных атаках и сигнал наивысшего приоритета: для федеральных агентств США это обязательное к устранению в сжатый срок, а для всех остальных — прямое указание не откладывать патч.
Что делать прямо сейчас
Реагирование сводится к нескольким шагам, и первый из них не терпит отлагательств.
Обновите Gravity Forms до версии 3.1.0.5 или новее. Это устраняет корневую причину — теперь все поля загрузки, независимо от видимости, проходят единую проверку расширения и типа перед сохранением. Если автообновление плагинов у вас отключено, сделайте обновление вручную сегодня.
Проверьте, не были ли вы уже скомпрометированы. Просмотрите каталоги загрузок и веб-корень на предмет свежих подозрительных файлов (особенно .php в директориях аплоада), изучите логи веб-сервера на аномальные POST-запросы к обработчику форм и последующие обращения к неизвестным скриптам. Наличие странных исполняемых файлов или веб-шеллов означает, что одним обновлением уже не обойтись.
Проведите ревизию форм. Инвентаризируйте все формы Gravity Forms и проверьте, есть ли в них скрытые поля загрузки файлов; временно отключите те, что не нужны, до подтверждения, что сайт пропатчен.
Закройте периметр в целом. Обновите остальные плагины и темы, ограничьте выполнение PHP в директориях загрузок на уровне веб-сервера и убедитесь, что регулярные бэкапы действительно восстанавливаются. Если своей экспертизы не хватает, реагирование на инцидент и последующее укрепление лучше передать команде поддержки сайтов.
Часто задаваемые вопросы
Какие версии Gravity Forms уязвимы? Все версии по 3.1.0.4 включительно. Уязвимость устранена в 3.1.0.5 — на неё и нужно обновляться.
Нужна ли авторизация для атаки? Нет. CVE-2026-84434 эксплуатируется неавторизованным пользователем, поэтому атаковать может любой анонимный посетитель сайта.
Мой сайт под угрозой, если у меня нет скрытых полей загрузки? Прямое условие эксплуатации — публично доступная форма с полем загрузки файла, у которого видимость выставлена «Hidden». Но такие поля часто добавляются кастомными сценариями и надстройками незаметно, поэтому единственный надёжный шаг — обновиться, а не полагаться на ручную проверку конфигурации.
Что означает попадание в CISA KEV? Что уязвимость реально используется в атаках. Это статус наивысшего приоритета: устранять нужно немедленно, а не в плановом окне обновлений.
Мы обновились с задержкой — достаточно ли просто поставить патч? Нет. Если сайт мог быть доступен атакующим до обновления, помимо патча необходимо проверить веб-корень и логи на признаки компрометации и при обнаружении веб-шелла запустить полноценное реагирование на инцидент.
Источники
Patchstack — Gravity Forms Plugin <= 3.1.0.4 — Unauthenticated Arbitrary File Upload via Hidden File Upload Field (CVE-2026-84434), база данных уязвимостей WordPress, 2026.
Wordfence — Threat Intelligence: Gravity Forms Unauthenticated Arbitrary File Upload, 2026.
CISA — Known Exploited Vulnerabilities Catalog, запись CVE-2026-84434, сентябрь 2026 года.
Ваш сайт на WordPress под контролем?
Проверим цепочку плагинов, закроем известные уязвимости и настроим дисциплину обновлений, чтобы критические RCE не превращались в захват сайта.