Se hai ricevuto un’email da parte mia che ti rimanda a questa pagina, è perché il tuo sito sembra eseguire una versione di SMS Alert (il plugin WordPress elencato come “SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery”, di Cozy Vision Technologies, che si trova nei tuoi file in /wp-content/plugins/sms-alert/) che rientra nell’intervallo interessato da un noto problema di sicurezza. Questa pagina spiega di cosa si tratta, come stabilire se riguarda il tuo sito e come effettuare l’aggiornamento. Si tratta di un plugin WordPress in tutto e per tutto.

Prima di tutto, il fatto più importante di questo avviso: una versione nell’intervallo interessato non significa di per sé che il tuo sito sia esposto. Il problema descritto di seguito entra in gioco solo quando sono vere entrambe le seguenti condizioni, e nessuna delle due è visibile dall’esterno del tuo sito:

  1. il tuo sito ha la verifica OTP attivata per il reset della password nelle impostazioni di SMS Alert, e
  2. l’account preso di mira ha un numero di telefono memorizzato.

Se utilizzi SMS Alert solo per le notifiche degli ordini, i messaggi di carrello abbandonato o l’OTP al checkout o alla registrazione, e non per verificare il reset della password, allora questo problema molto probabilmente non riguarda il tuo sito anche su una versione interessata. Posso leggere la versione del tuo plugin da un file pubblico, ma non posso vedere le tue impostazioni, quindi questo avviso è un avvertimento precauzionale, non una scoperta confermata riguardante il tuo sito.

Il problema è CVE-2026-11387, un’acquisizione di account non autenticata attraverso il flusso di reset della password del plugin (CWE-640, recupero password debole). Interessa le versioni dalla 3.0.0 alla 3.9.5 ed è risolto nella versione 3.9.6. Se stai eseguendo una versione interessata, aggiorna SMS Alert alla versione 3.9.6 o successiva. Le versioni 3.9.7 e 3.9.8 sono uscite successivamente e risolvono problemi diversi; entrambe vanno bene per quanto riguarda questo problema, e la 3.9.8 è la versione attuale. Ha un punteggio CVSS di 9.8 ed esiste un proof-of-concept pubblico, motivo per cui scrivo anche se la domanda sulla configurazione sopra potrebbe già risolvere la questione a tuo favore.

Una parola sull’urgenza, poiché si tratta di un avviso condizionato. Se non utilizzi SMS Alert per la verifica del reset della password, l’aggiornamento è una normale manutenzione del plugin. Se lo utilizzi, ti prego di trattare l’aggiornamento come una priorità: in quella configurazione la falla potrebbe permettere a un visitatore remoto senza alcun account di impostare una nuova password per qualsiasi utente che abbia un numero di telefono memorizzato, incluso un amministratore, il che consegnerebbe il controllo del sito.

Si tratta di una falla del plugin, non del core di WordPress o di WooCommerce. Un WordPress completamente aggiornato non ti protegge se il plugin SMS Alert stesso è su una versione interessata.

Questo messaggio è legittimo?

Sì. Si tratta di un avviso di divulgazione responsabile e di buona fede da parte di un ricercatore di sicurezza indipendente. Io non ti chiedo denaro, password o accesso al tuo sito, e non ho tentato di entrarci, di inviare nulla ad esso o di sfruttare nulla.

Ho solo esaminato i file visibili pubblicamente che il tuo sito web serve a ogni visitatore (allo stesso modo in cui la tua homepage è pubblica) e ho annotato il numero di versione che il plugin rende noto nel suo file pubblico readme.txt. In particolare non ho toccato il flusso di reset della password, e nulla in questa verifica tocca i tuoi dati, la tua area di amministrazione o qualsiasi parte privata del tuo sito (maggiori dettagli sotto Cosa ho fatto e cosa non ho fatto di seguito).

Se desideri verificare chi sono, consulta i dettagli di contatto in fondo a questa pagina e la pagina Chi sono.

Perché è importante

SMS Alert invia notifiche SMS e WhatsApp per i negozi WooCommerce, e può anche anteporre un codice monouso a determinate azioni dell’utente. Uno dei flussi che può proteggere in questo modo è il reset della password “hai dimenticato la password?”: il visitatore richiede un reset, il plugin invia via SMS un codice monouso al numero di telefono associato all’account, e la nuova password dovrebbe poter essere impostata solo dopo che quel codice è stato inserito correttamente.

Nelle versioni interessate, il passaggio che imposta la nuova password non verificava che il codice monouso fosse stato effettivamente completato. Il reset poteva quindi essere portato a termine senza che il codice venisse mai inserito, da parte di qualcuno che non ha effettuato l’accesso e non possiede un proprio account. La versione 3.9.6 aggiunge il controllo mancante, quindi il passaggio di impostazione della password ora si rifiuta di procedere a meno che la verifica del codice non sia stata superata per prima.

Due elementi determinano quanto questo sia rilevante per un dato sito. Primo, il punto di ingresso è proprio quella configurazione specifica: il plugin esegue il proprio flusso di reset solo dove un amministratore ha attivato la verifica OTP per il reset della password, e ha un codice da inviare solo per un account che ha un numero di telefono memorizzato. Un sito che non ha mai attivato questa funzione molto probabilmente non è affatto esposto, anche su una versione interessata. Secondo, dove la configurazione è presente, l’impatto è serio e non marginale, perché nulla lo limita agli account con privilegi bassi: qualsiasi account con un numero di telefono memorizzato può essere preso di mira, amministratori inclusi.

Se la mia email ha citato questo problema, significa che la versione che il tuo sito riporta rientra nell’intervallo interessato. Non ho testato se il tuo sito specifico sia sfruttabile, e non posso vedere come sono configurate le tue impostazioni OTP; ho osservato solo che il sito riporta una versione interessata.

Sono interessato?

Due domande decidono la questione, in questo ordine.

Primo: usi SMS Alert per verificare il reset della password? Questa è la domanda decisiva, e solo tu puoi rispondere. Controllare le tue stesse impostazioni è completamente sicuro ed è proprio lo scopo di questa pagina.

  • Nell’amministrazione di WordPress, apri il menu SMS Alert e vai alle sue impostazioni, poi alla sezione che controlla la verifica OTP. Quella sezione elenca i flussi davanti ai quali puoi anteporre un codice monouso. Verifica se il reset della password (a volte mostrato come “password dimenticata” o “hai dimenticato la password”) è tra quelli che hai attivato.
  • Se non è attivato, questo problema molto probabilmente non riguarda il tuo sito, anche su una versione interessata. L’aggiornamento è comunque consigliato, come normale manutenzione.
  • Se è attivato, il problema ti riguarda e dovresti aggiornare tempestivamente.

Ti prego di non provare a riprodurre il problema contro il tuo sito o contro quello di chiunque altro, e non ne hai bisogno per rispondere alla domanda sopra: leggere le tue impostazioni ti dice tutto quello che devi sapere.

Secondo: quale versione stai eseguendo? Non devi prendere la mia parola per questo, ma per questo plugin uno dei modi più ovvi di verificarlo è fuorviante, quindi vale la pena leggere questa parte con attenzione.

Dall’area di amministrazione di WordPress (fonte autorevole):

  1. Accedi alla tua bacheca di WordPress (di solito su yourdomain.com/wp-admin).
  2. Vai su Plugin poi Plugin installati.
  3. Trova la voce elencata come “SMS Alert – SMS & OTP for WooCommerce …“ (la sua cartella è sms-alert) e annota la versione mostrata sotto il suo nome. Questa è la versione realmente installata.

Dal manifesto pubblico (non serve il login): apri yourdomain.com/wp-content/plugins/sms-alert/readme.txt nel browser. La riga Stable tag: vicino all’inizio è la versione che la tua installazione riporta, ed è lo stesso file pubblico che ho letto.

Una cosa di cui non fidarsi: il numero ?ver= allegato agli script e ai fogli di stile front-end del plugin nel sorgente della tua pagina. SMS Alert marca quelle risorse a partire da una costante interna che, almeno una volta, è rimasta indietro rispetto alla release effettiva: la versione 3.5.0 è stata rilasciata con le sue risorse marcate 3.4.9. Leggere la versione in questo modo può quindi mostrarti una release più vecchia di quella che stai realmente eseguendo, il che al limite trasformerebbe un’installazione 3.9.6 già corretta in un’apparente 3.9.5. Questo è esattamente il motivo per cui non l’ho usata per decidere chi contattare, e perché dovresti invece giudicare la tua versione dalla schermata di amministrazione o dalla riga del readme.txt.

Poi applica questa regola, tenendo presente che le versioni si confrontano numericamente, non alfabeticamente, quindi 3.9.10 sarebbe più recente di 3.9.9:

  • Dalla 3.0.0 alla 3.9.5: potenzialmente interessato (soggetto alla domanda sulla configurazione OTP sopra), aggiorna ora.
  • 3.9.6 o successiva: già risolto. Questo include la 3.9.7 e la 3.9.8, che sono release successive che affrontano problemi non correlati; la versione attuale è la 3.9.8.
  • Precedente alla 3.0.0: fuori da ciò su cui sono disposto a esprimermi. La release più vecchia ancora pubblicata dal vendor è la 3.0.0, quindi non ho modo di esaminare nulla al di sotto di essa, e preferisco non dire nulla piuttosto che accusare una versione che non posso verificare. In pratica questo caso è ipotetico: l’installazione più vecchia che ho visto ovunque è una release 3.4.x.

Come effettuare l’aggiornamento

La procedura più sicura è aggiornare direttamente da WordPress, dopo aver effettuato un backup:

  1. Esegui il backup del tuo sito (file e database) prima di apportare modifiche. La maggior parte dei provider di hosting offre backup con un solo clic, oppure puoi utilizzare un plugin di backup per WordPress.
  2. Nell’amministrazione di WordPress, vai su Bacheca quindi Aggiornamenti, oppure Plugin quindi Plugin installati. Se è elencato un aggiornamento per SMS Alert, installalo da qui.
  3. Se preferisci la riga di comando, WP-CLI fa la stessa cosa: wp plugin update sms-alert (il comando utilizza il nome della cartella, sms-alert).
  4. Se non appare alcun aggiornamento, puoi ottenere l’ultima versione direttamente dalla pagina del plugin nella directory di WordPress.org, SMS Alert, e aggiornare tramite Plugin quindi Aggiungi nuovo plugin quindi Carica plugin.
  5. Dopo l’aggiornamento, conferma il nuovo numero di versione (3.9.6 o successivo) utilizzando i passaggi sopra, e verifica che le tue notifiche degli ordini e qualsiasi flusso OTP che utilizzi funzionino ancora normalmente.

Mentre sei in quella sezione, vale la pena verificare che il core di WordPress, WooCommerce e i tuoi altri plugin siano aggiornati, poiché lo stesso principio si applica a tutti loro.

Dopo l’aggiornamento

L’aggiornamento alla 3.9.6 o successiva risolve il problema, e per la maggior parte dei siti questo è l’unico compito necessario. Questa pagina è un avviso precauzionale, non un rapporto di incidente: non ho visibilità su cosa sia accaduto sul tuo sito, e non ho effettuato controlli in tal senso.

Un controllo successivo vale la pena di essere considerato, ed è condizionato dalla stessa domanda sulla configurazione. Se il tuo sito aveva la verifica OTP per il reset della password attivata mentre eseguiva una versione interessata, allora era almeno teoricamente possibile che qualcuno avesse impostato una nuova password su un account con un numero di telefono memorizzato. L’aggiornamento chiude la falla, ma non annulla un accesso già avvenuto, quindi in quel caso due precauzioni di routine sono opportune:

  • Rivedi i tuoi account amministratore, e qualsiasi altro account rilevante, per voci che non riconosci o modifiche di ruolo che non hai effettuato.
  • Controlla i cambi di password recenti e gli accessi recenti per gli account che hanno un numero di telefono memorizzato, e reimposta qualsiasi password che sembri essere cambiata senza che il titolare dell’account l’abbia richiesto.

Se trovi qualcosa che ti preoccupa, trattarlo come faresti con qualsiasi altro accesso non autorizzato sospetto è la risposta corretta: cambia le password degli amministratori, e valuta di rigenerare le chiavi segrete e i salt in wp-config.php, il che disconnette tutte le sessioni esistenti. Se il tuo sito non ha mai avuto l’OTP per il reset della password attivato, l’aggiornamento da solo è sufficiente.

Cosa ho fatto e cosa non ho fatto

Per essere pienamente trasparente riguardo al controllo dietro la mia email: ho letto solo due file pubblici che il tuo sito già serve a ogni visitatore, in particolare il file readme.txt pubblico del plugin e la tua homepage. Non ho avuto accesso alla tua area di amministrazione di WordPress, al tuo database o a qualsiasi parte privata del sito. In particolare, non ho toccato il flusso di reset della password, non ho inviato nulla al tuo sito, e non ho testato o sfruttato nulla.

Sto anche deliberatamente non pubblicando i dettagli che aiuterebbero qualcuno ad agire su questo problema: la pagina sopra descrive la falla al livello di cui un proprietario del sito ha bisogno e non oltre, e non collego il codice proof-of-concept pubblico.

Questa è un’osservazione basata sulla versione: il tuo sito riporta una versione nell’intervallo interessato. Poiché questo problema dipende dalla configurazione, un sito in quell’intervallo potrebbe non essere affatto esposto (se non utilizza la verifica OTP per il reset della password), e potrebbe anche essere già mitigato con altri mezzi, come un firewall per applicazioni web. Questo avviso non è un’affermazione che il tuo sito fosse sfruttabile al momento del mio controllo.

Non ho un webmaster / Sono bloccato

Se non sei la persona che mantiene il sito, per favore inoltra questa pagina a chi se ne occupa (il tuo sviluppatore web, agenzia o provider di hosting). Riconosceranno rapidamente i passaggi sopra.

Se stai mantenendo il sito da solo e ti blocchi, sono felice di aiutarti indicando la direzione giusta senza costi. Contattami utilizzando i dettagli di contatto di seguito.

Contatti

Evan Harris, Ricercatore di sicurezza

Mi metto in contatto riguardo a problemi come questo puramente per aiutare gli operatori a proteggere i loro siti. Se preferisci non essere contattato di nuovo, fammelo sapere e lo rispetterò.

Riferimenti

Avvisi ufficiali e tracciamento

Fornitore / plugin