
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 arbitrária de senha
Uma falha crítica de autenticação imprópria no plugin WordPress SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery. Quando a verificação OTP está habilitada para redefinições de senha, um chamador não autenticado pode definir uma nova senha para um usuário que possui um número de telefone cadastrado — incluindo administradores — sem comprovar a posse desse telefone.
| CVE | CVE-2026-11387 |
| CWE | CWE-287: Improper Authentication |
| 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) |
| Afetado | Todas as versões até 3.9.5 |
| Corrigido | 3.9.6 (27 de junho de 2026) |
| CNA | Wordfence |
Este repositório contém uma prova de conceito da Abraxas Labs somente para testes autorizados — 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 controlar 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 OTP ou de outra forma é o dono 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 então assumir a conta por meio de uma redefinição normal. Qualquer um dos caminhos é uma tomada de conta não autenticada.
Os sites só estão expostos quando ambas as condições a seguir são verdadeiras:
billing_phone).Sob essas condições, o impacto é o comprometimento total da conta escolhida. A tomada de um administrador é um comprometimento total do site.
| Condição | Resultado |
|---|---|
| Acesso de rede não autenticado | Nenhuma credencial WordPress necessária |
| Alvo é um comprador / 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 SMS Alert se parece aproximadamente com isto:
solicitação de senha perdida → OTP para o telefone do usuário → POST verificado de alteração de senha
A etapa quebrada é a última. O plugin roteia 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 OTP anterior, nonce ou verificação de capacidade que comprovaria que o chamador é o usuário nomeado na redefinição.
Esta prova de conceito permanece nesse manipulador:
POST para 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.Nenhum OTP é enviado. Esse é o bug.
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py é um pequeno cliente Python 3: banner colorido e depois as três etapas acima. Ele fala 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 o uso e então sai com código 1. Essa é uma forma segura de confirmar que o cliente inicia.
O site WordPress alvo deve estar executando 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 qualquer 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)Uso apenas para pesquisa e fins educacionais. 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
wp-login.php