Автоматизированный сканер записывает вебшеллы в WordPress под видом JPEG

Автоматизированный сканер записывает вебшеллы в WordPress под видом JPEG

Автоматизированный сканер эксплуатирует уязвимость CVE-2026-102785 в обработчике изображений YOOtheme Pro и записывает на серверы файлы, позволяющие выполнять команды. Первый такой файл появился на атакованной установке через два дня после выхода исправления. Уязвимость допускает удалённое выполнение кода без аутентификации. Под удар попадают сайты на WordPress, где применяется YOOtheme Pro версий с 5.0.0 по 5.0.52.

Описание

Исправление выпустили в версии 5.0.53 в пятницу 21 октября 2026 года. Описание CVE-2026-102785 опубликовали на следующий день, 22 октября. Рабочие образцы эксплойтов, по наблюдению Unit 42, появились 23 октября, то есть примерно через сутки после раскрытия сведений об ошибке. Сообщений об эксплуатации до выхода исправления в наблюдениях нет.

Сканер не подбирает учётные данные. Он берёт ссылку на изображение, уже опубликованное на самом сайте, и дописывает к ней две операции обработчика. Одна загружает тело запроса, вторая сохраняет результат как файл PHP в каталоге загрузок WordPress. Сервер отвечает ошибкой 500, однако файл на диск всё равно попадает. Записанный скрипт (вебшелл, то есть файл для удалённого управления сервером) остаётся корректным JPEG, потому что исполняемый код размещён в сегменте метаданных APP13 и повторное перекодирование картинки его не уничтожает.

Первая ступень не требует аутентификации. Команды она принимает в параметре запроса и передаёт оболочке, форму загрузки отдаёт по другому значению того же параметра, а на любой запрос отвечает служебной строкой WPCONFIG. На сервере под Windows каждая команда исполняется интерпретатором командной строки. Имена записанных файлов начинаются с yt и содержат семь шестнадцатеричных знаков.

Каждую запись сканер проверяет примерно за три секунды. Он подаёт команду вывода случайной метки, затем команду, показывающую идентификатор пользователя. Метка для следующей записи новая, поэтому проверки различаются между собой. В одном из наблюдений файл записался в 10:58:30 по UTC, первый отклик пришёл через две секунды, второй ещё через секунду. Та же последовательность повторялась при каждой записи.

Примерно через две минуты к тому же серверу подключился человек и загрузил вебшелл ALFA Team, используя другие сетевые адреса и меняя набор команд. Разведочный набор включал проверку пользователя, версии ядра и содержимого каталогов. Часть команд рассчитана на Linux, хотя сервер работал под Windows, что указывает на универсальный инструментарий для Linux-хостингов WordPress. Оператор пытался установить средство удалённого доступа gsocket: скрипт с сайта проекта скачали и сразу исполнили в оболочке. Затем он пробовал забрать файл второго этапа с GitHub, а его трафик шёл через выходные узлы домашних сетей на мобильных операторах Индонезии.

Загруженный вебшелл перенесли из временного файла PHP в каталог загрузок WordPress. Там же появился набор вспомогательных файлов ALFA Team: конфигурация веб-сервера, скрипты для Perl, Python, Bash и ASPX. После этого прошли команды проверки версии системы, имени пользователя и принадлежности служебного файла, который использует файловый менеджер ALFA. Не установлено, удалось ли запустить второй этап, закрепиться на сервере и получить данные с атакованных хостов. Сколько установок затронуто, тоже неизвестно, а совпадение запроса с описанным шаблоном само по себе может давать ложные срабатывания, поскольку обработчик изображений обслуживает и обычные обращения к сайту.

Индикаторы компрометации

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