CVE-2026-104014: account takeover nel plugin Email OTP per WooCommerce, verifica e patch

Vincenzo Katriel Giuva7 novembre 20266 min di lettura
CVE-2026-104014: account takeover nel plugin Email OTP per WooCommerce, verifica e patch

Se il tuo negozio WooCommerce usa il plugin Naimur Email OTP Verification for WooCommerce in versione 2.1.0 o precedente, un attaccante senza credenziali può cambiare la password di un utente e ottenere un cookie di sessione valido. Se l'utente è un amministratore, il sito è suo. La vulnerabilità è tracciata come CVE-2026-104014, punteggio CVSS 9.8. Di seguito spiego come funziona, come controllare se sei esposto e cosa fare.

Cosa è successo: la vulnerabilità CVE-2026-104014 in Email OTP Verification for WooCommerce

Il plugin gestisce il reset della password tramite codice OTP inviato via email. Il problema sta nel passaggio finale: l'endpoint AJAX wp_ajax_nopriv_ceovw_update_new_password, gestito da CEOVW_AJAX::update_new_password(), autorizza il cambio password solo perché nel database esiste una riga che segna l'email come "VERIFIED". Non c'è controllo del timestamp, nessun legame con la sessione dell'utente e nessun token per singolo reset.

A peggiorare le cose, la funzione mark_otp_as_verified_for_reset() lascia la riga in stato "VERIFIED" dopo l'inserimento del codice. Se l'utente abbandona il flusso senza scegliere la nuova password, la riga resta lì. Il cron ceovw_cleanup_expired_otps_event che dovrebbe ripulire le righe scadute è schedulato ma non ha alcun handler registrato con add_action(), quindi la pulizia non avviene mai. Si tratta di un bypass di autenticazione (authentication bypass) causato da una verifica di autorizzazione incompleta.

Chi è colpito: versioni vulnerabili di Email OTP Verification for WooCommerce

  • Plugin: Naimur Email OTP Verification for WooCommerce (slug naimur-email-otp-for-woocommerce) per WordPress.
  • Versioni vulnerabili: tutte fino alla 2.1.0 inclusa.
  • Condizioni: il plugin è attivo e almeno un utente ha avviato e verificato un reset password senza completarlo. Dato che la pulizia non funziona, quelle righe si accumulano nel tempo.

Quanto è grave: punteggio CVSS e sfruttamento attivo di CVE-2026-104014

Il punteggio è 9.8 CRITICAL, vettore CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. In parole semplici: attacco da rete, complessità bassa, nessun privilegio richiesto, nessuna interazione della vittima, impatto alto su riservatezza, integrità e disponibilità.

Cosa ottiene l'attaccante: gli bastano l'indirizzo email della vittima e un nonce che il plugin stesso pubblica nella variabile globale CEOVW_APP sulla pagina account di WooCommerce, visibile anche ai visitatori non loggati. Con questi due elementi chiama l'endpoint, sovrascrive la password e riceve in risposta un cookie wordpress_logged_in_ già valido. Se l'account è un amministratore, il risultato è la presa di controllo completa del sito. Al momento la vulnerabilità non risulta nel catalogo CISA KEV, ma la semplicità dell'attacco la rende un candidato ovvio per gli scanner automatici.

Come capire se sei esposto: verifica versione, esposizione e log

Verifica la versione del plugin

  • Da bacheca: Plugin > Plugin installati, cerca "Email OTP Verification for WooCommerce" e leggi la versione.
  • Da WP-CLI: wp plugin get naimur-email-otp-for-woocommerce --field=version
  • Da file: grep -i "Version:" wp-content/plugins/naimur-email-otp-for-woocommerce/naimur-email-otp-for-woocommerce.php

Verifica l'esposizione

Apri in una finestra anonima la pagina /my-account/ del tuo negozio e guarda il sorgente: se trovi la variabile CEOVW_APP con un nonce, l'endpoint è raggiungibile da chiunque. Se il sito è pubblico su internet, cosa normale per un e-commerce, l'esposizione è totale.

Log e indicatori di compromissione

  • Nei log del web server cerca richieste POST a /wp-admin/admin-ajax.php con action=ceovw_update_new_password, soprattutto da IP che non hanno mai navigato il sito prima.
  • In Utenti controlla cambi di password recenti, nuovi amministratori e modifiche all'email di account esistenti.
  • Nella tabella del plugin che memorizza gli OTP (il nome va verificato nel codice del plugin) cerca righe in stato "VERIFIED": ognuna rappresenta un account attaccabile.
  • Con WP-CLI, wp cron event list | grep ceovw mostra l'evento schedulato: conferma che è presente ma inutile.
  • Verifica file modificati di recente in wp-content e plugin sconosciuti, segnali tipici di un accesso admin abusivo.

Come risolvere la vulnerabilità: patch e aggiornamento di Email OTP Verification for WooCommerce

I riferimenti pubblici puntano al file includes/class-ajax.php della versione 2.1.1 del plugin, il che indica che il codice dell'endpoint è stato modificato in quella release. La versione corretta non è però dichiarata in modo esplicito nella descrizione ufficiale: prima di considerarti al sicuro, controlla il changelog del plugin sul repository WordPress e verifica che la release risolva espressamente CVE-2026-104014.

L'aggiornamento si applica da Plugin > Plugin installati > Aggiorna oppure con wp plugin update naimur-email-otp-for-woocommerce. Se non esiste una versione che risolve il problema, o non puoi aggiornare subito, disattiva il plugin: il reset password standard di WordPress continua a funzionare.

Cosa fare subito: mitigazioni e hardening per CVE-2026-104014

  1. Aggiorna o disattiva il plugin. È l'unica misura che chiude davvero la falla.
  2. Blocca l'endpoint sul WAF o sul web server finché non hai aggiornato: nega le richieste a admin-ajax.php con action=ceovw_update_new_password.
  3. Svuota le righe "VERIFIED" dalla tabella OTP del plugin, dopo aver fatto un backup del database. Senza quelle righe l'attacco non può partire.
  4. Invalida tutte le sessioni: wp user session destroy --all. Un cookie rubato prima dell'aggiornamento resta valido altrimenti.
  5. Ruota le password degli amministratori e degli account WooCommerce con permessi elevati; cambia anche le chiavi di sicurezza in wp-config.php.
  6. Riduci il numero di amministratori e attiva l'autenticazione a due fattori sugli account che restano.
  7. Rivedi gli altri plugin: i componenti per WooCommerce sono bersaglio frequente, come già visto per CVE-2026-100109 in Security For WooCommerce.

Se sospetti una compromissione: incident response e analisi forense

Se trovi tracce di chiamate anomale all'endpoint, nuovi admin o password cambiate senza motivo, tratta il sito come compromesso. Non cancellare log, non reinstallare tutto da zero e non fare pulizie improvvisate: distruggeresti le prove. Esporta i log del web server, del database e dell'hosting, fai uno snapshot o una copia forense del sito e del database, e solo dopo procedi al ripristino da un backup precedente alla compromissione.

Se nel negozio sono presenti dati di clienti, valuta con il tuo consulente privacy l'obbligo di notifica al Garante ai sensi del GDPR. Come perito informatico forense mi occupo di acquisizione forense, analisi dell'intrusione e ricostruzione della catena degli eventi, con un metodo che regge anche in sede legale o assicurativa. Per chi preferisce prevenire, la manutenzione e assistenza del sito include aggiornamenti controllati e monitoraggio dei plugin.

Fonti ufficiali

Hai un negozio WooCommerce esposto? Parliamone

Se non sei sicuro di quale versione stai usando, se hai trovato righe "VERIFIED" o accessi sospetti, oppure vuoi un controllo completo dei plugin del tuo e-commerce, scrivimi. Richiedi un preventivo gratuito, rispondo entro 24 ore, oppure usa la pagina contatti anche via WhatsApp. Un audit di sicurezza parte da 2.000 € e un intervento di incident response da 1.500 €, sempre a prezzo fisso concordato prima di iniziare.

#CVE#CVE-2026-104014#WordPress#WooCommerce#Email OTP Verification#Allerte Sicurezza

Condividi l'articolo

LinkedInTwitter