
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 автоматически:
Результат: полностью подтверждённая учётная запись, созданная без взаимодействия или уведомления администратора, на сайте, который явно требует подтверждения администратора для новых регистраций.
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 | Исправлена |
Пользователи → Все пользователи на наличие неожиданных подтверждённых учётных записей, созданных после установки уязвимой версии. Обратите особое внимание на учётные записи, для которых нет соответствующего уведомления администратору по электронной почте.Уязвимый метод должен требовать как проверки возможности, так и валидного nonce:
protected function is_admin_creation_process() {
return current_user_can( 'create_users' )
&& isset( $_REQUEST['action'] )
&& 'createuser' === $_REQUEST['action']
&& isset( $_REQUEST['_wpnonce_create-user'] )
&& wp_verify_nonce(
wp_unslash( $_REQUEST['_wpnonce_create-user'] ),
'create-user'
);
}
| Дата | Событие |
|---|---|
| 2026-03-09 |
Исследователи, отслеживающие модель авторизации этого плагина, также могут быть заинтересованы в:
register_member (≤ 5.1.2)Исследование, обнаружение и разработка PoC:
Anthony Cihan Offensive Security Lead — Obviam
Если вы ссылаетесь на эту работу, пожалуйста, указывайте CVE-2026-6145 с указанием авторства Anthony Cihan / Obviam.
Данное доказательство концепции публикуется для защитных исследований, разработки средств обнаружения и авторизованного тестирования безопасности. Оно предназначено для помощи:
Оригинальное исследование проводилось в авторизованной лабораторной среде на основании подписанного соглашения, с координированным раскрытием поставщику через Программу ответственного раскрытия Wordfence до публичного выпуска.
Запуск данного PoC против любой системы, которая вам не принадлежит или на тестирование которой у вас нет явного письменного разрешения, является незаконным в соответствии с Законом США о компьютерном мошенничестве и злоупотреблениях (18 U.S.C. § 1030), Законом Великобритании о неправомерном использовании компьютеров 1990 года, Директивой ЕС 2013/40/EU и эквивалентным законодательством в большинстве юрисдикций. Автор и Obviam отказываются от любой ответственности за неправомерное использование этого кода.
Используя этот репозиторий, вы подтверждаете, что прочитали, поняли и приняли эти условия.
Выпущено под лицензией MIT. Требуется указание авторства в соответствии с разделом об авторах выше.
| Шаг | Проблема | Цель |
|---|
| 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 | Автоматически подтвердить новую учётную запись и подавить уведомление администратора |
| Уязвимость выявлена в ходе авторизованного аудита безопасности плагина версии 5.1.4 |
| 2026-03-09 | Первоначальный отчёт отправлен в Программу ответственного раскрытия Wordfence |
| 2026-04-12 | CVE-2026-6145 зарезервирован Wordfence (CNA) |
| 2026-05-14 | Опубликована исправленная версия поставщика; опубликован CVE-2026-6145 |
| 2026-05-14 | Выпущен данный PoC в координации с публичным уведомлением |