Уязвимость в WordPress позволяет выполнить код через цепочку XSS2Shell

WordPress

В WordPress обнаружена уязвимость высокой степени опасности, получившая название XSS2Shell. Она позволяет неаутентифицированному злоумышленнику выполнять JavaScript в контексте сайта, а при дополнительных условиях - добиться выполнения PHP-кода на сервере. Разработчики выпустили экстренное исправление.

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

Проблема отслеживается как CVE-2026-64638 и получила оценку 8,9 балла по шкале CVSS. Уязвимость затрагивает все поддерживаемые ветки WordPress - платформы, на которой работает более 43% сайтов в интернете. Её обнаружили исследователи из pwn.ai, которые также подготовили работающую цепочку атаки и доказали возможность получения полного контроля над сервером.

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

Таким образом атакующий может внедрить на страницу входа элементы вроде областей-ссылок, кнопок и блоков. Сами по себе они безвредны, но вступают в игру со скриптом, который WordPress подгружает для страницы входа. Этот скрипт, предназначенный для страницы профиля, автоматически ищет определённые элементы и имитирует клики. В результате срабатывает цепочка: внедрённые элементы активируют обработчик, отправляющий запрос к REST API. Благодаря подмене адреса через манипуляции с DOM, запрос уходит на специальный эндпоинт с JSONP-параметром. Ответ приходит как исполняемый JavaScript, и код атакующего выполняется в домене WordPress - без учётной записи и без участия жертвы.

Для перехода к выполнению кода на сервере требуется участие администратора сайта. Если вошедший в систему администратор перейдёт на страницу, подготовленную атакующим, и один раз кликнет, цепочка продолжается. Используя технику Same Origin Method Execution (выполнение метода в контексте того же источника), исследователи заставили браузер администратора подтвердить создание пароля приложения - специального учётного элемента для доступа к REST API. Затем через легитимные API-вызовы атакующий публикует страницу с вредоносным JavaScript и загружает ZIP-архив с PHP-кодом. Архив распаковывается в каталог плагинов, и PHP-файл становится доступен по прямой ссылке - активация плагина не требуется.

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

Исправление вышло в версии 7.0.3 6 августа 2026 года. Патч закрывает расхождение в обработке данных, добавляя экранирование при выводе сообщений. Обновление также распространено на все поддерживаемые ветки, начиная с 4.7. Вместе с основным исправлением в релизы вошли ещё одиннадцать патчей безопасности. На момент раскрытия информации подтверждённых случаев эксплуатации в реальных атаках не зафиксировано.

Уязвимость присутствует во всех версиях WordPress до соответствующих исправлений. Основные затронутые ветки: 7.0.0-7.0.2, 6.9.0-6.9.5, 6.8.0-6.8.6, 6.7.0-6.7.5, 6.6.0-6.6.5, 6.5.0-6.5.8, 6.4.0-6.4.8, а также более старые вплоть до 4.7. Исправленные версии: 7.0.3, 6.9.6, 6.8.7, 6.7.6, 6.6.6, 6.5.9, 6.4.9 и 4.7.34. Владельцам сайтов на неподдерживаемых ветках следует перейти на актуальную.

Сайтам с автоматическими фоновыми обновлениями патч должен был установиться самостоятельно, но на самоуправляемых установках часто требуется ручное вмешательство. В связи с появлением публичных доказательств концепции, воспроизводящих цепочку XSS2Shell от атаки на страницу входа до выполнения PHP-кода, обновление становится особенно важным. Администраторам рекомендуется проверить, что на сайте нет неожиданных паролей приложений и новых плагинов - это возможные индикаторы компрометации. Также стоит обратить внимание на новые учётные записи администраторов, изменения файлов и подозрительную активность REST API.

Уязвимость привлекает внимание к проблеме расхождений в механизмах санитизации в популярных CMS. Даже при наличии многослойной фильтрации различия в интерпретации одних и тех же данных разными компонентами могут открыть путь к серьёзной компрометации. Своевременное обновление остаётся основной мерой защиты.

Ссылки

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