В ядре WordPress обнаружили цепочку уязвимостей Click2Shell, которая позволяет удалённо выполнить PHP-код на сервере без учётной записи атакующего. Для захвата сайта достаточно, чтобы авторизованный администратор открыл специально подготовленную ссылку.
Проблему нашёл исследователь pwn.ai Паулос Йибело. Согласно техническому отчёту, WordPress по-разному обрабатывал один и тот же параметр ссылки предпросмотра темы.
API каталога очищал значение и находил легитимную тему, а JavaScript в браузере администратора вставлял исходную строку в jQuery-селектор без должного экранирования.
В результате подготовленный URL заставлял интерфейс WordPress самостоятельно нажать кнопку установки. Администратор при этом не выбирал ни «Установить», ни «Активировать», а тема оставалась неактивной и внешне сайт продолжал работать как обычно.
Для полноценного RCE исследователи добавили второй компонент — уязвимую тему Mobile Repair Zone 2.5.4 из официального каталога. Во время предпросмотра WordPress загружал её PHP-код, после чего небезопасный AJAX-обработчик позволял скачать и выполнить произвольный плагин.
Дальше атакующий мог читать wp-config.php, красть ключи и данные БД, менять файлы, создавать администраторов и внедрять скрипты. Атака не является полностью автоматической: ссылку должен открыть вошедший в систему администратор.
Роли Author и Editor нужных полномочий не имеют. Доставить URL можно через целевой фишинг или уже существующую XSS-уязвимость.
WordPress закрыл дыру в версии 7.1.1 и выпустил патчи для поддерживаемых старых веток. Поскольку подробности и PoC уже опубликованы, откладывать обновление нельзя. Временной страховкой может стать DISALLOW_FILE_MODS, запрещающий установку тем и плагинов, но нормальное лекарство всё то же — патч.


.

