
Plugin SMS & OTP per WooCommerce, notifiche degli ordini e recupero carrello abbandonato per WordPress; SMS Alert <3.9.6; Escalation dei privilegi non autenticata (reimpostazione forzata della password)

SMS Alert ≤ 3.9.5 - escalatione di privilegi non autenticato tramite reimpostazione arbitraria della password
Una critica vulnerabilità di autenticazione impropria nel plugin WordPress SMS Alert - SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery. Quando la verifica OTP è abilitata per la reimpostazione della password, un chiamante non autenticato può impostare una nuova password per un utente che ha un numero di telefono registrato - inclusi gli amministratori - senza dimostrare il possesso di quel telefono.
| CVE | CVE-2026-11387 |
| CWE | CWE-287: Autenticazione impropria |
| CVSS 3.1 | 9.8 Critico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Fornitore | Cozy Vision Technologies Pvt. Ltd. |
| Prodotto | SMS Alert (sms-alert) |
| Affette | Tutte le versioni fino alla 3.9.5 |
| Corretta | 3.9.6 (27 giugno 2026) |
| CNA | Wordfence |
Questo repository contiene un proof-of-concept di Abraxas Labs per soli test autorizzati - divulgazione al fornitore, riproduzione in laboratorio o un host per cui si dispone di autorizzazione scritta alla valutazione.
SMS Alert intercetta il flusso di recupero password di WooCommerce / WordPress in modo che un codice monouso inviato via SMS dovrebbe proteggere la nuova password. Nelle versioni affette, il gestore dietro option=smsalert-change-password-form applica smsalert_user_newpwd senza verificare che il chiamante abbia completato la verifica OTP o che possieda in altro modo l'account.
Il record CVE ufficiale nota inoltre che lo stesso controllo di identità mancante può essere utilizzato per modificare l'indirizzo email di una vittima e poi assumere il controllo dell'account tramite un normale reset. Entrambi i percorsi costituiscono una compromissione dell'account non autenticata.
I siti sono esposti solo quando entrambe queste condizioni sono vere:
billing_phone).In tali condizioni l'impatto è la compromissione completa dell'account scelto. L'assunzione del controllo di un amministratore è una compromissione completa del sito.
| Condizione | Risultato |
|---|---|
| Accesso di rete non autenticato | Nessuna credenziale WordPress richiesta |
| Il target è un acquirente / sottoscrittore | Compromissione dell'account di quel cliente |
| Il target è un amministratore | Escalation di privilegi a wp-admin, installazione di plugin/temi, malware persistente |
Riservatezza, integrità e disponibilità sono tutte elevate: l'attaccante può leggere ordini e PII, modificare contenuti e utenti del sito e bloccare l'accesso al legittimo proprietario.
La reimpostazione della password con SMS Alert si presenta all'incirca così:
lost-password request → OTP to the user’s phone → verified change-password POST
Il passaggio difettoso è l'ultimo. Il plugin instrada su $_REQUEST['option'] == 'smsalert-change-password-form' (vedi class-wpresetpassword.php nella 3.9.5) e poi scrive la password inviata. Non vincola quel POST a una precedente sessione OTP, nonce o controllo di capacità che proverebbe che il chiamante è l'utente indicato nel reset.
Questo proof-of-concept resta su quel gestore:
POST a WooCommerce /my-account/lost-password/ e /wp-login.php?action=lostpassword con wc_reset_password impostato, in modo che il percorso di reset del plugin venga attivato per il nome utente della vittima.POST option=smsalert-change-password-form più smsalert_user_newpwd / smsalert_user_cnfpwd a /, /my-account/lost-password/ e all'azione lost-password di wp-login. Un header Location contenente password-reset=true viene considerato un successo.wp-login.php con la nuova password, così un'esecuzione in laboratorio può distinguere una vera compromissione da un fallimento (opzione OTP disattivata, o nessun telefono sull'utente).Nessun OTP viene inviato. Questo è il bug.
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py è un piccolo client Python 3: banner colorato, poi i tre passaggi sopra. Comunica solo con l'URL che si passa sulla riga di comando.
requestsSu macOS con Python di Homebrew (PEP 668), usare un venv invece di un pip install di 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
Un terzo argomento imposta la password da applicare; il valore predefinito è abr4x4s#L4b5.
Senza argomenti lo script stampa il banner e le istruzioni di utilizzo, poi esce con 1. È un modo sicuro per confermare che il client si avvii.
Il sito WordPress target deve eseguire SMS Alert ≤ 3.9.5, con OTP-on-reset abilitato, e il nome utente della vittima deve avere già un numero di telefono per l'OTP. Contro un sito corretto 3.9.6+, o un utente senza telefono, la verifica del login dovrebbe fallire.
Non puntare questo strumento verso alcun host che non si possiede o per cui non si ha autorizzazione scritta al test.
wp-admin della finestra temporale rilevante.class-ultimatemember.php (Trac)Solo per uso di ricerca ed educativo. Non eseguire, distribuire o utilizzare questo materiale contro alcun host a meno che non si abbia esplicita autorizzazione scritta sia dalla parte che ospita questo repository sia dal proprietario dei sistemi target.
Abraxas Labs · abraxaslabs.tech · github.com/abraxas · @abraxas_null