Обход аутентификации в WPMU DEV Dashboard при включенном Hub SSO позволяет получить права администратора

WordPress

В плагине WPMU DEV Dashboard для WordPress обнаружена уязвимость обхода аутентификации. Она позволяет неаутентифицированному посетителю получить сессию администратора. Такая возможность появляется, когда на сайте включена функция Hub SSO (единый вход в Hub) и вход через неё сопоставлен с администратором. В худшем случае атакующий получает полный контроль над сайтом. Через встроенный редактор плагинов или тем он может выполнить произвольный код. По оценкам, плагин установлен примерно на 350 тысячах сайтов.

Уязвимость CVE-2026-76581

Проблему обнаружил исследователь Алекс Томас в ходе внутренних работ с инструментом Wordfence Argus. Уведомление разработчику отправили 19 августа 2026 года. Через два дня он предоставил предварительный патч. 24 августа исправление вышло в публичной версии 5.0.2. Уязвимость зарегистрирована под идентификатором CVE-2026-76581. Она затрагивает все версии плагина до 5.0.1 включительно.

WPMU DEV Dashboard связывает сайт WordPress с сервисами WPMU DEV. Механизм Hub SSO даёт авторизованному пользователю Hub возможность войти на подключенный сайт без повторного ввода пароля. Обмен проходит в два шага. На первом шаге сервер создает подпись для перехода в Hub. На втором шаге он проверяет подпись, возвращенную от Hub, и создает сессию WordPress. Оба шага доступны без аутентификации. Поэтому корректная работа подписи здесь имеет решающее значение.

Подпись строится на основе HMAC. Это код аутентичности сообщения, который вычисляется по секретному ключу. Первый шаг вычисляет HMAC по объединению нескольких значений. В это объединение входят одноразовый токен, случайное состояние, адрес перенаправления и домен сайта. Второй шаг проверяет подпись только по токену, состоянию и адресу перенаправления. Проверка не включает домен. При этом поля склеиваются без разделителей. Такая несогласованность создает возможность подмены.

Атакующий может запросить первый шаг с пустым адресом перенаправления. Тогда первый шаг вычислит подпись по строке, состоящей из токена, состояния и домена. Полученную подпись можно отправить на второй шаг. Для этого нужно поместить домен в поле адреса перенаправления. Второй шаг тоже вычисляет подпись по токену, состоянию и домену. В результате байтовые строки совпадают, хотя смысл полей различается. Атакующему не нужен секретный ключ. Первый шаг выступает в роли оракула подписи: он сам возвращает валидную подпись и все необходимые несекретные значения.

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

На сайтах, где Hub SSO сопоставлен с учетной записью администратора, результатом становится полная компрометация. Административная сессия дает возможность менять темы, плагины, пользователей и конфигурацию. Через редактор файлов темы или плагина можно внедрить произвольный PHP-код. Это приводит к удаленному выполнению кода. Кроме того, атака не требует участия жертвы. Она не зависит и от сложности пароля администратора.

Важно отличать эту проблему от более ранней уязвимости WPMU DEV Dashboard. Та затрагивала сайты, не подключенные к WPMU DEV, и использовала другой механизм проверки. Её закрыли в версии 5.0.1. Новая уязвимость действует на подключенных сайтах с включенным Hub SSO. Она оставалась в версии 5.0.1, несмотря на защиту, добавленную для более ранней проблемы.

Разработчик решил проблему в версии 5.0.2. Патч сохраняет подпись, созданную на первом шаге, в серверных настройках SSO. На втором шаге плагин проверяет, не совпадает ли входящая подпись с сохраненной. Повторное использование плагин отклоняет. Легитимный обмен продолжает работать, потому что Hub формирует для второго шага другую подпись. Исследователи подтвердили, что после обновления воспроизведение атаки не создает пользовательскую сессию. Корректный SSO-вход при этом выполняется как раньше.

Пользователям стоит убедиться, что на сайте установлена версия 5.0.2. Если обновление невозможно, необходимо отключить Hub SSO до установки исправления. Wordfence выпустила для платных клиентов правило брандмауэра, блокирующее известные попытки эксплуатации. Из-за особенностей правило опубликовали на день позже патча. Это позволило владельцам сайтов установить исправление до его включения. Пользователи бесплатной версии Wordfence получат такое же правило через 30 дней.

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

Ссылки

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