
Plugin SMS & OTP para WooCommerce, Notificações de Pedidos e Recuperação de Carrinho Abandonado para WordPress; SMS Alert <3.9.6; Escalação de Privilégios Não Autenticada (Redefinição de Senha Forçada)

SMS Alert ≤ 3.9.5 - escalonamento de privilégios não autenticado via redefinição de senha arbitrária
Uma falha crítica de autenticação inadequada no plugin WordPress SMS Alert - SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery. Quando a verificação por OTP está habilitada para redefinições de senha, um chamador não autenticado pode definir uma nova senha para um usuário que tenha um número de telefone cadastrado - incluindo administradores - sem provar a posse desse telefone.
| CVE | CVE-2026-11387 |
| CWE | CWE-287: Autenticação Inadequada |
| CVSS 3.1 | 9.8 Crítico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Fornecedor | Cozy Vision Technologies Pvt. Ltd. |
| Produto | SMS Alert (sms-alert) |
| Afetadas | Todas as versões até 3.9.5 |
| Corrigida | 3.9.6 (27 de junho de 2026) |
| CNA | Wordfence |
Este repositório contém uma prova de conceito do Abraxas Labs para testes autorizados apenas - divulgação ao fornecedor, reprodução em laboratório ou um host para o qual você tenha permissão por escrito para avaliar.
O SMS Alert intercepta o fluxo de senha perdida do WooCommerce / WordPress para que um código de uso único enviado por SMS deva condicionar a nova senha. Nas versões afetadas, o manipulador por trás de option=smsalert-change-password-form aplica smsalert_user_newpwd sem verificar se o chamador concluiu a verificação por OTP ou se é o proprietário da conta.
O registro oficial do CVE também observa que a mesma verificação de identidade ausente pode ser usada para alterar o endereço de e-mail de uma vítima e, em seguida, assumir a conta por meio de uma redefinição normal. Qualquer um dos caminhos é uma tomada de conta não autenticada.
Os sites só ficam expostos quando ambas as condições a seguir são verdadeiras:
billing_phone).Nessas condições, o impacto é o comprometimento total da conta escolhida. A tomada de conta de um administrador é o comprometimento total do site.
| Condição | Resultado |
|---|---|
| Acesso de rede não autenticado | Nenhuma credencial do WordPress necessária |
| Alvo é um cliente / assinante | Tomada de conta desse cliente |
| Alvo é um administrador | Escalonamento de privilégios para wp-admin, instalação de plugins/temas, malware persistente |
Confidencialidade, integridade e disponibilidade são todas altas: o atacante pode ler pedidos e PII, alterar conteúdo e usuários do site e bloquear o proprietário legítimo.
A redefinição de senha com o SMS Alert é mais ou menos assim:
lost-password request → OTP to the user’s phone → verified change-password POST
A etapa quebrada é a última. O plugin roteia com base em $_REQUEST['option'] == 'smsalert-change-password-form' (veja class-wpresetpassword.php na 3.9.5) e então grava a senha enviada. Ele não vincula esse POST a uma sessão de OTP anterior, nonce ou verificação de capacidade que provaria que o chamador é o usuário nomeado na redefinição.
Esta prova de conceito permanece nesse manipulador:
POST para o WooCommerce /my-account/lost-password/ e /wp-login.php?action=lostpassword com wc_reset_password definido, para que o caminho de redefinição do plugin seja acionado para o nome de usuário da vítima.POST option=smsalert-change-password-form mais smsalert_user_newpwd / smsalert_user_cnfpwd para /, /my-account/lost-password/ e a ação de senha perdida do wp-login. Um cabeçalho Location contendo password-reset=true é tratado como sucesso.wp-login.php com a nova senha para que uma execução em laboratório possa distinguir uma tomada de conta real de um erro (opção de OTP desativada ou usuário sem telefone).Nenhum OTP é enviado. Esse é o bug.
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py é um pequeno cliente Python 3: banner colorido e, em seguida, as três etapas acima. Ele se comunica apenas com a URL que você passa na linha de comando.
requestsNo macOS com Homebrew Python (PEP 668), use um venv em vez de um pip install do sistema:
python3 -m venv .venv
.venv/bin/pip install requests
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py <base_url> <victim_username> [new_password]
.venv/bin/python3 CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py \
https://shop.example \
admin
Um terceiro argumento define a senha a ser aplicada; o padrão é abr4x4s#L4b5.
Sem argumentos, o script imprime o banner e as instruções de uso e então sai com 1. Essa é uma forma segura de confirmar que o cliente inicia.
O site WordPress alvo deve estar executando o SMS Alert ≤ 3.9.5, com OTP na redefinição habilitado, e o nome de usuário da vítima já deve ter um número de telefone para OTP. Contra um site corrigido 3.9.6+ ou um usuário sem telefone, espera-se que a verificação de login falhe.
Não aponte isto para nenhum host que você não possua ou para o qual não tenha autorização por escrito para testar.
wp-admin da janela relevante como não confiáveis.class-ultimatemember.php (Trac)Apenas para uso em pesquisa e educacional. Não execute, implante ou use este material contra qualquer host, a menos que você tenha permissão explícita por escrito tanto da parte que hospeda este repositório quanto do proprietário dos sistemas alvo.
Abraxas Labs · abraxaslabs.tech · github.com/abraxas · @abraxas_null