В экосистеме WordPress вновь зафиксирован масштабный инцидент, связанный с безопасностью популярных плагинов. Уязвимость, позволяющая анонимным злоумышленникам загружать на сервер произвольные файлы, включая PHP-бэкдоры, была обнаружена в дополнении Ninja Forms - File Uploads. Плагин, установленный примерно на 50 000 активных сайтов, получил критическую оценку CVSS 9.8. Причина - фатальная ошибка в механизме валидации загружаемых файлов, открывающая прямой путь к полному компрометированию веб-ресурса.
Описание
Формально исправленная версия 3.3.27 была выпущена разработчиком 19 марта 2026 года. Однако, как это часто бывает, реальная угроза материализовалась лишь после публичного раскрытия деталей уязвимости (CVE-2026-0740) 6 апреля того же года. Специалисты компании Wordfence, занимающейся защитой веб-приложений, сообщили, что атаки начались буквально в день публикации, а их межсетевой экран к настоящему моменту заблокировал уже более 118 600 попыток эксплуатации.
Суть уязвимости кроется в функции "NF_FU_AJAX_Controllers_Uploads::handle_upload". Плагин проверял тип файла на основе его исходного имени, но полностью игнорировал аналогичную проверку для конечного имени файла после его загрузки на сервер. Кроме того, отсутствовала необходимая санитизация имени файла. Эта комбинация ошибок позволяла неавторизованному злоумышленнику отправить на сайт файл с расширением ".php", используя технику обхода каталогов (path traversal), и разместить его в любой директории, включая корневую веб-папку. В результате злоумышленник получал возможность выполнить произвольный код на сервере, что в контексте безопасности веб-приложений равносильно полному захвату контроля.
Анализ данных об атаках, проведённый экспертами Wordfence, демонстрирует разнообразие техник, используемых киберпреступниками. Вместо прямой загрузки очевидно вредоносных PHP-скриптов, атакующие применяют методы обхода валидации. Один из распространённых сценариев включает загрузку файла, который на клиентской стороне маскируется под безобидный PDF-документ или изображение (с корректными заголовками формата), но на сервере сохраняется под именем с расширением ".php". Внутри такого файла содержится минималистичная веб-оболочка (webshell), предоставляющая злоумышленнику удобный интерфейс для дальнейшей загрузки любого вредоносного кода прямо в файловую систему сайта.
Другой интересный вектор атаки - загрузка скомпрометированного файла ".htaccess". Этот файл конфигурации веб-сервера Apache может быть использован для изменения правил обработки файлов. В наблюдаемых атаках злоумышленники загружали ".htaccess", который принудительно предписывал серверу исполнять PHP-код, содержащийся в файлах с расширением ".txt". Это создаёт долговременную и скрытую точку входа, даже если администратор впоследствии обновит плагин и заблокирует прямую загрузку ".php"-файлов.
Статистика атак указывает на их скоординированный и массовый характер. Наиболее активные IP-адреса, такие как 124.248.183[.]139, с которого было совершено более 53 000 заблокированных попыток, демонстрируют типичную для подобных кампаний модель поведения. Злоумышленники автоматически сканируют интернет в поисках уязвимых сайтов на WordPress и немедленно пытаются эксплуатировать свежеобнаруженную уязвимость, стремясь установить бэкдоры до того, как администраторы успеют применить обновление.
С технической точки зрения, данный инцидент является классическим примером недостаточной проверки входящих данных на стороне сервера. Плагин доверял информации, предоставленной клиентом (MIME-тип и исходное имя файла), и не выполнял независимой проверки фактического содержимого и конечного пути сохранения. Для специалистов по безопасности это очередное напоминание о необходимости реализовывать принцип наименьших привилегий, изолировать загружаемые пользовательские файлы в отдельные, неисполняемые директории и применять строгие белые списки разрешённых расширений на основе анализа реального содержимого файла.
В свете активной эксплуатации уязвимости владельцам сайтов, использующим плагин Ninja Forms - File Uploads, настоятельно рекомендуется немедленно проверить и обновить его до версии 3.3.27 или выше. Промедление с установкой патча создаёт крайне высокий риск полной компрометации ресурса, что может привести к утечке данных клиентов, дефейсу сайта, его интеграции в ботнет или использованию для распространения вредоносного ПО. Кроме того, целесообразно провести аудит файловой системы на предмет наличия подозрительных PHP-файлов в директориях загрузок и корне веб-сервера, а также проанализировать логи веб-сервера на предмет запросов к "/wp-admin/admin-ajax.php" с параметром "action=nf_fu_upload", которые могут свидетельствовать о попытках атаки.
Индикаторы компрометации
IPv4
- 124.108.54.86
- 124.248.183.139
- 143.198.143.185
- 152.42.221.239
- 160.202.35.137
- 168.144.32.17
- 182.9.35.168
- 185.213.83.150
- 37.19.205.247
- 82.29.88.44