Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Срочно обновляйте сайты WordPress. Отраженная XSS без прав получила опасную цепочку RCE

Обычная страница входа в WordPress оказалась способна превратить одну неудачную авторизацию в выполнение JavaScript на сайте, а при удачном стечении обстоятельств для атакующего привести к запуску PHP-кода на сервере. Разработчики WordPress закрыли уязвимость в версии 7.0.3 и рекомендуют администраторам обновить сайты как можно скорее.

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

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

Исследователи обнаружили, что строка с пробелом сразу после символа «<» может пройти первый фильтр как обычный текст. Следующий парсер воспринимает ту же конструкцию уже как допустимый HTML. В результате атакующий получает возможность добавить собственные элементы в DOM страницы входа, хотя напрямую вставить тег script нельзя.

Дальше срабатывает неожиданная особенность самого WordPress. На странице входа загружается скрипт user-profile.js, который обычно отвечает за элементы профиля пользователя и восстановление пароля. Добавленные атакующим HTML-элементы заставляют штатный JavaScript WordPress самостоятельно отправить запрос по выбранному адресу. Через REST API и поддержку JSONP исследователи смогли превратить такой запрос в выполнение JavaScript в контексте атакуемого сайта.

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

Затем вредоносная страница использует штатный механизм WordPress Application Passwords и заставляет браузер администратора подтвердить выдачу отдельного пароля для API. Атакующий получает такой ключ доступа, публикует через REST API страницу со своим JavaScript, а затем использует активную административную сессию для получения nonce и загрузки ZIP-архива с плагином. PHP-файл внутри загруженного плагина можно вызвать напрямую, даже не активируя сам плагин.

WordPress подчёркивает, что превращение XSS в удалённое выполнение кода зависит от нескольких условий, которые атакующий не может гарантировать заранее. Жертва должна иметь активную административную сессию и взаимодействовать с подготовленной страницей. Поэтому CVE-2026-64638 нельзя считать полностью автономной pre-auth RCE, хотя исходная XSS действительно не требует авторизации.

Уязвимость обнаружила система pwn.ai, использующая несколько ИИ-агентов и открытые модели. В качестве отправной точки разработчики дали системе исследование техники Same Origin Method Execution 2022 года. По данным pwn.ai, на поиск и построение полной цепочки ушло почти четыре дня. Уязвимость воспроизвели 26 июля, 27 июля сообщили команде WordPress, а 6 августа разработчики выпустили исправление.

Исследователи отдельно проверили XSS на двух реальных установках WordPress 7.0.2 без предварительной авторизации. Полную цепочку до выполнения PHP-кода команда воспроизводила уже в собственной тестовой среде и не пыталась захватывать сторонние серверы. По состоянию на 7 августа сведений об эксплуатации CVE-2026-64638 в реальных атаках нет.

Исправление вошло в WordPress 7.0.3. Команда проекта также переносит патч в старые ветки, которые ещё получают исправления безопасности, вплоть до WordPress 4.7. Владельцам сайтов с автоматическими фоновыми обновлениями патч должен устанавливаться автоматически, однако WordPress рекомендует проверить версию вручную и не откладывать обновление.

SecurityLab