Плагин Wholesale Lead Capture для WooCommerce пропускает PHP-файлы, потому что список расширений задаёт атакующий

WordPress

Плагин Wholesale Lead Capture для WooCommerce в версиях вплоть до 2.0.3.1 принимает на сервер любые файлы, включая исполняемые сценарии PHP. Уязвимость известна под номером CVE-2026-27540, её оценка по шкале CVSS составляет 9.8. Произвольная загрузка файлов здесь обходится без аутентификации: подойдёт запрос от любого посетителя. Один удачный запрос, и на диске появляется файл, который затем запускают прямо из браузера. Затронуты примерно шесть тысяч сайтов, столько установок расширения насчитывают разработчики.

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

О проблеме сообщили 20 февраля 2026 года. Пятью днями позже сведения попали в базу Wordfence Intelligence, по которой проверяют компоненты сайтов. Речь идёт о коммерческом расширении для WordPress, оно работает в связке с WooCommerce. Плагин добавляет формы оптовой регистрации: компания оставляет заявку, прикладывает документы, а владелец магазина получает готовую карточку клиента с вложениями. Поле для загрузки файлов здесь не украшение, а рабочая необходимость, поэтому отключить его без потери функциональности нельзя. Нашёл уязвимость исследователь Teemu Saarentaus.

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

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

Загруженный сценарий работает как веб-оболочка, то есть программа, дающая удалённое управление сайтом через браузер. С её помощью выполняют произвольный код, заводят учётные записи администратора, выкачивают содержимое базы и подменяют страницы. Один запрос без пароля приводит к полному контролю над сайтом. Оптовые формы собирают данные клиентов и реквизиты компаний, поэтому утечка бьёт не только по самому сайту, но и по его деловым партнёрам.

Эксплуатация идёт давно и массово. Межсетевой экран Wordfence заблокировал больше 100 000 попыток. Пики пришлись на 4-17 июня, 1 июля и 30 августа. Отдельные адреса отправили свыше 24 тысяч запросов каждый, ещё один перевалил за 16 тысяч. Причина в простоте атаки: эксплойт, готовый код для использования уязвимости, легко автоматизировать, поэтому сканеры перебирают сайты тысячами. Им не нужно подбирать пароли или искать вход в административную панель, достаточно знать адрес сайта.

Закрытая версия плагина носит номер 2.0.3.2. Обновиться стоит как можно быстрее, потому что более ранние сборки остаются уязвимыми. Тем, кто уже пострадал, обновление не поможет: загруженные файлы лежат на диске, пока их не найдут и не удалят. Обычно злоумышленники не мешают сайту работать, чтобы владелец не заметил вторжения и не начал разбираться.

Признаки взлома ищут в двух местах. Сначала просматривают каталог загрузок на неожиданные файлы с расширением php и сверяют журналы веб-сервера на обращения к административному обработчику AJAX. Потом проверяют список пользователей: лишние учётные записи администраторов удаляют, пароли меняют. Если в журналах нет подозрительных запросов, это не гарантирует чистоту сайта. Заражение могли оформить раньше, а журналы хранятся ограниченное время. Кроме того, часть атак блокирует файрвол, и в логах такие попытки не отразятся.

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

Ссылки

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