Одиннадцать уязвимостей в WordPress закрыли 17 сентября 2026 года вместе с версией 7.1.1. Две из них важны в первую очередь: хранимый межсайтовый скриптинг, который запускается без учётной записи на сайте, и перезапись чужих записей силами пользователя с минимальными правами. Проблемы затрагивают почти весь поддерживаемый парк сборок, от ветки 7.0 до 4.7. Всё, что старше 4.6, исправлений уже не получит.
Детали уязвимостей
Самый неприятный сценарий связан с форматированием абзацев в комментариях. Злоумышленник отправляет сообщение, которое выглядит безобидно. После одобрения модератором встроенный сценарий исполняется в браузере каждого, кто откроет страницу с этим комментарием. Учётная запись для такой атаки не нужна, достаточно возможности оставить комментарий. О проблеме сообщил Рафи Мухаммад из Awesome Motive. Похожая ошибка нашлась в настройке изображения шапки: на части тем хранимый сценарий проходил через пользовательские картинки заголовка. Обе уязвимости относятся к классу хранимого межсайтового скриптинга, при котором вредоносный код оседает в базе сайта и срабатывает при каждой загрузке страницы.
Межсайтовый скриптинг - это внедрение чужого сценария на страницу, который выполняется в браузере посетителя. Такой код может увести сессию администратора, подменить содержимое страницы или перенаправить посетителя на сторонний ресурс. Многое здесь зависит от аккуратности модерации и от того, насколько быстро сайт получает обновления.
Отдельный сценарий атаки описали Паулос Йибело и исследователи pwn.ai. Специально составленный адрес позволял установить и просмотреть тему из официального каталога WordPress.org. Администратор мог не заметить ни установки, ни предпросмотра. Речь идёт уже не про отдельный комментарий, а про доверие к ссылкам, которые открывает владелец сайта.
Следующая группа проблем касается ролей. Пользователь с правами участника или автора может перезаписать чужую запись, включая материалы редакторов и администраторов. На блогах с открытой регистрацией и большой редакцией это превращает слабопривилегированную учётную запись в инструмент порчи контента. Ту же линию продолжает ошибка, из-за которой участник видит слаги черновиков и записей, ожидающих проверки. Слаги, то есть части адресов страниц, позволяют угадать содержимое закрытых материалов.
Ошибки, связанные с ролями, встречаются в WordPress регулярно. Редакционные процессы устроены по-разному, и права участника на одном сайте значат меньше, чем на другом. Чем больше людей допущено к публикациям, тем шире поверхность для такой атаки. Отзыв лишних прав и проверка ролей после каждого набора авторов снижают этот риск заметно.
Дальше идёт набор ошибок поменьше, но с похожими последствиями. Заголовок приватной родительской записи утекал в ответах системы. В обработчике HTML изменённый текст выходил за пределы комментария, что давало возможность подменить разметку страницы. В мультисайте, где одна установка обслуживает несколько сайтов, администратор отдельного сайта получал право активировать плагин, доступный только на уровне сети. В контроллере шаблонов REST API обнаружился обход пути, при котором запрос выходил за пределы разрешённого каталога. Любой вошедший пользователь мог менять родителя комментариев, включая служебные заметки. Через XML-RPC, старый протокол для удалённой публикации записей, проходила проверка прав на пользовательский CSS. Атаки требуют разного уровня доступа, поэтому тяжесть последствий зависит от настроек конкретного сайта.
В описании выпуска разработчики говорят о двенадцати исправлениях безопасности, тогда как перечень затронутых веток и список благодарностей называют одиннадцать проблем. Расхождение небольшое, но оно показывает, насколько плотным получился выпуск. Кроме уязвимостей, в 7.1.1 вошли десятки исправлений ядра и редактора блоков, которые к безопасности отношения не имеют.
Обновиться можно из панели управления, раздел "Обновления", либо скачать сборку с сайта wordpress.org/releases. Исправления получили ветки 7.0.5, 6.9.8, 6.8.9 и 6.7.8, а также более старые линии вплоть до 4.7.36. Чем старше ветка, тем меньше проблем в ней закрыто: в 4.7 исправлено шесть из одиннадцати, в 7.0 - все. Ветка 4.6 и всё, что старше, поддержки лишились, и там уязвимости остаются открытыми. Сайтам на таких сборках помогает только переезд на актуальную версию.
Старые версии остаются главной зоной риска. Пока владельцы обновляют свежие сайты, давно работающие сборки накапливают незакрытые уязвимости, а вместе с ними стареют плагины и темы. Комментарии и роли участников в этой истории важны потому, что они есть почти на любом сайте и почти всегда включены по умолчанию. Владельцам проектов с открытой регистрацией, множеством авторов и живыми комментариями разумно проверить настройки модерации, ограничить роли до действительно нужных и не откладывать переход на 7.1.1.
Ссылки
- https://wordpress.org/documentation/wordpress-version/version-7-1-1/
- https://make.wordpress.org/core/2026/09/10/wordpress-7-1-1-rc1-is-now-available/
- https://core.trac.wordpress.org/query?status=closed&resolution=fixed&milestone=7.1.1&order=priority