Comment2Shell: комментарий в WordPress мог превратиться в захват сервера

· Безопасность
Уязвимость в ядре WordPress позволяла анонимному посетителю оставить комментарий со скрытым скриптом, который срабатывал при открытии страницы администратором. Исправление вышло 17 сентября в версии 7.1.1.

cover.svg

Разработчики WordPress закрыли уязвимость в ядре, из-за которой безобидный на вид комментарий мог обернуться исполнением произвольного кода на сервере сайта. Ошибка получила идентификатор CVE-2026-93485 и прозвище Comment2Shell. Компания Patchstack, присвоившая идентификатор, оценила её в 7.1 балла из 10 по шкале CVSS.

Разрыв между двумя проверками

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

При переформатировании один из шагов разбивал тег на части и перемещал текст злоумышленника туда, где браузер воспринимал его как рабочий обработчик события. Обработчик срабатывал автоматически при загрузке страницы — без единого клика. Скрипт выполнялся в браузере любого, кто открывал страницу, с его уровнем доступа.

От XSS к серверу

Чтобы дело дошло до сервера, требовалось одно условие: страницу с комментарием должен был открыть авторизованный администратор. Тогда скрипт использовал его сессию, чтобы загрузить плагин с веб-шеллом — небольшим файлом, выполняющим команды атакующего. Загрузка плагина из браузера администратора — известный путь к контролю над сервером; Мухаммад подтвердил, что вся цепочка работает от начала до конца.

Атака зависела и от способа отображения комментариев. Она работала на сайтах с блочной темой — а такова каждая стандартная тема WordPress начиная с Twenty Twenty-Two. На классических темах уязвимыми были только записи с блоками комментариев.

WordPress отметил, что эксплуатация возможна лишь «при условии одобрения комментария». Однако модерация по умолчанию выключена, а ограничение для впервые пишущих можно обойти. Как выразились в Patchstack, «модерация — это не средство защиты».

Что делать

Следует обновиться до WordPress 7.1.1 или до последнего выпуска своей ветки, если она ещё получает исправления. Затронуты версии с 4.7 по 7.1; для веток выпущены 7.1.1, 7.0.5, 6.9.8 и, вплоть до 4.7.36, отдельные релизы. Кто не может обновиться сразу — может закрыть комментарии или задействовать WAF либо защитный плагин.

Обновление устраняет брешь, но не отменяет уже внесённых изменений: сайту, имеющему основания подозревать атаку, стоит проверить незнакомые плагины и файлы.

Всего 7.1.1 закрыла 11 проблем безопасности. Comment2Shell была единственной, доступной без учётной записи. В том же выпуске исправлена и вторая уязвимость, Click2Shell, где особая ссылка заставляла WordPress установить тему и через ещё одну брешь выполнить код — но и она требовала действий администратора.


Источник: The Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.