главное в кибербезопасности Читать в канале
Уязвимости 19 сентября 2026 3 мин

WordPress 7.1.1: RCE через Click2Shell с помощью CSRF и инъекции

WordPress 7.1.1 устраняет уязвимость Click2Shell

WordPress 7.1.1 исправил уязвимость Click2Shell. Исследователь Паулос Ибило из pwn.ai обнаружил, что она позволяет объединить межсайтовую поддельную запросу (CSRF) с инъекцией в селектор. Это превращает один клик в удалённую командную оболочку. Уязвимость исправили 17 сентября. Она демонстрирует, как объединение нескольких слабых мест создаёт опасную атаку.

Click2Shell превращает клик в удалённую командную оболочку

WordPress позволяет администраторам просматривать и устанавливать темы из каталога WordPress.org. Процесс передаёт идентификатор темы (slug) через URL. Этот идентификатор обрабатывается дважды разными частями кода. На стороне сервера API тем WordPress.org очищает идентификатор. Лишние символы удаляются. Например, twentytwenty"]> превращается в twentytwenty. На стороне клиента JavaScript в панели администратора использует тот же необработанный идентификатор. Он вставляет его непосредственно в строку селектора jQuery без очистки. Это несоответствие и есть уязвимость. Специально сформированный идентификатор темы обманывает страницу. Она думает, что пользователь нажал «Установить» на совершенно другой теме.

Атака проходит от установки до полного компромисса

Тихо установленная неактивная тема сама по себе не представляет большой опасности. Однако при предварительном просмотре темы в кастомайзере WordPress неактивная тема активируется. Исследователи использовали реальную тему Mobile Repair Zone 2.5.4 как вторую ступень. Сначала специально созданный URL устанавливает тему. Затем другая ссылка загружает кастомайзер с активной темой Mobile Repair Zone. Это запускает файл functions.php темы. Он регистрирует хуки, включая AJAX-обработчик. Этот обработчик принимал URL для загрузки плагина без проверки nonce и прав доступа. Передача URL вредоносного ZIP-архива в этот AJAX-обработчик заставляет WordPress загрузить и выполнить его на стороне сервера. Это превращает появление неактивной темы в получение атакующим рабочей командной оболочки.

Атака требует действий администратора или XSS

Атака начинается со специально созданного URL. Она требует, чтобы администратор сайта открыл этот URL. Обычный пользователь или даже редактор не могут её запустить. Атаку можно осуществить двумя способами. Первый — злоумышленник заставляет конкретного администратора перейти по ссылке, находясь в системе. Это целевая фишинговая атака. Второй способ — внедрение XSS на сайте. Когда администратор просматривает страницу, запрос выполняется автоматически в его браузере. Второй случай означает, что у атакующего уже есть доступ к сайту. Для этого должна существовать другая уязвимость, позволяющая внедрить XSS. Click2Shell была лишь одним из способов использования этой уязвимости. Полное выполнение кода также зависит от возможности установки тем на целевом сайте. Если установка тем запрещена (DISALLOW_FILE_MODS включён), атака возможна, но не приведет к установке новых тем или плагинов.

WordPress 7.1.1 ограничивает селектор и экранирует данные

WordPress 7.1.1 закрывает уязвимость, ограничивая уязвимый селектор реальными элементами DOM .theme. Идентификатор темы теперь проходит через $.escapeSelector() перед вставкой в строку селектора. Данные обрабатываются как обычный текст, а не структурные элементы. Это предотвращает автоматическое нажатие кнопок. Уязвимость возникла из-за обработки параметра URL на стороне сервера и клиента. В таких случаях требуется очистка данных с обеих сторон. Этот шаблон может встречаться везде, где два разных фрагмента кода независимо обрабатывают одни и те же входные данные.

Обновиться до WordPress 7.1.1 или новее

Patchstack защищает своих клиентов от этой уязвимости. Рекомендуется немедленно обновиться до последней доступной версии WordPress. В версии 7.1.1 уязвимый селектор ограничен реальными элементами .theme. Идентификатор темы проходит через $.escapeSelector(). Данные обрабатываются как обычный текст.

Источник: Patchstack