Разработчики WordPress устранили серьёзную уязвимость отражённого межсайтового скриптинга (XSS) на странице входа, которая затрагивает все версии популярной системы управления контентом. Исследователи из pwn.ai продемонстрировали, как эта уязвимость может быть использована для выполнения кода PHP на сервере, когда администратор взаимодействует со страницей, контролируемой злоумышленником.
Уязвимость зарегистрирована под номером CVE-2026-64638 с оценкой критичности CVSS 8.9. Для её эксплуатации не требуются права доступа. XSS на странице входа не требует аутентификации. Когда специально подготовленное имя пользователя попадает на страницу ошибки неудачного входа, вредоносный JavaScript автоматически выполняется в браузере посетителя без дополнительного взаимодействия.
Для достижения полного выполнения кода на сервере необходимо, чтобы жертва была авторизована как администратор и кликнула на ссылку, контролируемую злоумышленником. Исследователи подтвердили, что атака работает против стандартных установок WordPress и не требует особых конфигураций хостинга.
Уязвимость была закрыта 6 августа в WordPress версии 7.0.3 с обратными портами вплоть до версии 4.7. WordPress настоятельно рекомендует всем пользователям немедленно обновиться. Сайты с включённым автоматическим обновлением получат исправление автоматически. Более старые версии, чем 4.7, остаются уязвимыми и находятся вне диапазона поддерживаемых обновлений.
Техническая сущность уязвимости заключается в неправильной обработке имени пользователя при ошибке входа. Значение проходит через несколько функций очистки, которые позволяют специально сформированной строке с пробелом после символа "<" пройти фильтрацию. Позже WordPress обрабатывает это значение функцией, которая интерпретирует его как допустимый HTML. В результате на странице входа создаются контролируемые злоумышленником DOM-элементы.
Эти элементы взаимодействуют со скриптом управления профилем пользователя WordPress, который загружается на странице входа для функции восстановления пароля. Некоторые ожидаемые элементы отсутствуют, что позволяет злоумышленнику манипулировать переменными и перенаправлять JavaScript на контролируемый запрос REST API.
Полная цепочка атаки использует REST JSONP поддержку WordPress для преобразования запроса в выполняемый JavaScript. Исследователи продемонстрировали путь от XSS к выполнению PHP-кода, который использует создание временных учётных данных доступа (Application Passwords) в сессии администратора. С помощью этих учётных данных они загружают вредоносный плагин, содержащий PHP код.
Успешное выполнение PHP кода позволит злоумышленнику получить доступ к учётным данным базы данных, создавать новых администраторов, изменять содержимое, раскрывать файлы и переменные окружения, а также выполнять системные команды с правами веб-сервера.
WordPress благодарит команду pwn.ai за ответственное раскрытие уязвимости. На момент публикации сведений об эксплуатации в дикой природе не зафиксировано.
