Критическая уязвимость в плагине Burst Statistics позволяет захватить учётную запись администратора на 200 тысячах сайтов WordPress

WordPress

В популярном плагине для веб-аналитики Burst Statistics, который установлен более чем на 200 тысяч сайтов, обнаружена критическая уязвимость. Она позволяет злоумышленнику, знающему лишь имя администратора, полностью подменить этого пользователя при любом запросе к REST API. Максимальный балл по системе CVSS (Common Vulnerability Scoring System, общепринятая методика оценки опасности) составил 9,8 из 10 - это один из самых высоких показателей.

Проблему выявила автономная исследовательская платформа PRISM, созданная компанией Wordfence. Произошло это 8 мая 2026 года. Уязвимость появилась в коде ещё 23 апреля, но была обнаружена всего через 15 дней. Разработчики выпустили исправление 12 мая, то есть спустя лишь 19 дней с момента внедрения ошибки. Такая оперативность стала возможной благодаря использованию искусственного интеллекта - он значительно сократил окно, в течение которого атакующие могли бы найти и использовать уязвимость.

В чём именно заключается уязвимость?

Плагин Burst Statistics включает интеграцию с системой управления сайтами MainWP. Для поддержки удалённых запросов он реализует собственную схему проверки подлинности через HTTP-заголовок Authorization. Обработка начинается в методе "has_admin_access()", который вызывается при каждом обращении к REST API (интерфейсу для программного взаимодействия с сайтом). Если в запросе присутствует специальный заголовок "X-BurstMainWP: 1", то управление передаётся функции "is_mainwp_authenticated()".

Здесь и кроется главная опасность. Код извлекает из заголовка Authorization имя пользователя и пароль, после чего передаёт их встроенной функции WordPress "wp_authenticate_application_password()". Эта функция предназначена для проверки так называемых паролей приложений. Однако разработчики Burst Statistics допустили логическую ошибку: они считали, что функция возвращает ошибку (объект WP_Error) при неверном пароле, а в противном случае - успешный результат. На самом деле при определённых условиях, например когда пароли приложений вообще не используются, "wp_authenticate_application_password()" может вернуть "null". А "null" не является объектом WP_Error, поэтому проверка проходит - и пользователь считается аутентифицированным.

В результате злоумышленник, который знает любое действительное имя администратора, может отправить запрос с произвольным неверным паролем. Функция "успешно" завершается, после чего система устанавливает текущего пользователя именно как того администратора. Дальше все действия в рамках этого запроса выполняются от имени администратора. Атакующий может, например, создать новую учётную запись с правами суперадминистратора, отправив POST-запрос к стандартному REST-маршруту "/wp-json/wp/v2/users". Никакой настоящей аутентификации при этом не требуется.

Как была устранена уязвимость?

Wordfence сообщил о проблеме разработчикам Burst Statistics 8 мая. Полные технические детали передали 11 мая. Уже на следующий день, 12 мая, вышла исправленная версия плагина 3.4.2. Разработчики изменили проверку: теперь код требует, чтобы результат функции "wp_authenticate_application_password()" был именно объектом WP_User, а не просто не был ошибкой. Это исключает ложное срабатывание при получении "null".

Почему это так опасно?

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

Что делать?

Владельцам сайтов, использующих Burst Statistics, необходимо немедленно обновить плагин до версии 3.4.2 или выше. Это единственный надёжный способ закрыть дыру. Любая задержка даёт злоумышленникам время на эксплуатацию. Рекомендуется также проверить, не появлялись ли в журналах запросы с необычными заголовками Authorization, особенно если запросы шли к REST API и содержали имя администратора.

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

Ссылки

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