
Se il tuo negozio WooCommerce usa il plugin LiteSpeed Cache in versione 7.9.1 o precedente, i dati di fatturazione e spedizione dei tuoi clienti possono essere letti da chiunque, senza login. La causa è la CVE-2026-93389: con l'opzione Cache REST attiva (impostazione predefinita) il plugin mette in cache pubblica le risposte del carrello e del checkout e le serve anche a visitatori diversi. Qui spiego chi è colpito, come controllare il tuo sito e cosa fare subito.
Cosa è successo: la vulnerabilità CVE-2026-93389 in LiteSpeed Cache
LiteSpeed Cache salva come oggetti di cache pubblici le risposte GET della WooCommerce Store API agli endpoint /wc/store/v1/cart e /wc/store/v1/checkout. Non differenzia la cache in base al Cart-Token né alla sessione WooCommerce. Il risultato è che la risposta personalizzata di un cliente viene servita come LSCache HIT a qualsiasi richiesta successiva, anche senza cookie e senza token. Si tratta di una divulgazione di informazioni sensibili non autenticata, dovuta a una gestione errata della chiave di cache.
Chi è colpito: versioni vulnerabili di LiteSpeed Cache
- Plugin LiteSpeed Cache per WordPress, tutte le versioni fino alla 7.9.1 inclusa.
- Condizione necessaria: WooCommerce installato e opzione Cache REST attiva (valore cache-rest=1, che è il default con cui il plugin viene distribuito).
Se usi LiteSpeed Cache senza WooCommerce, questo problema specifico non ti riguarda, ma conviene comunque aggiornare. Se il sito gira su un hosting che fornisce LiteSpeed come web server, il plugin è spesso preinstallato: controlla anche se non ricordi di averlo attivato tu.
Quanto è grave: punteggio CVSS e sfruttamento attivo
Il punteggio CVSS 3.1 è 8.2, gravità alta, con vettore AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N: attacco da rete, bassa complessità, nessun privilegio e nessuna interazione dell'utente. L'impatto sulla riservatezza è alto, quello sull'integrità è basso. Al momento la vulnerabilità non risulta nel catalogo CISA KEV, quindi non c'è conferma ufficiale di sfruttamento attivo. Va però considerato che l'attacco è banale: basta una richiesta HTTP all'endpoint giusto.
Cosa ottiene un attaccante non autenticato:
- nome, azienda, indirizzo, email e telefono di fatturazione e spedizione di un altro cliente;
- contenuto del carrello e totali;
- il Cart-Token (un JWT di sessione) e il nonce, con cui può dirottare la sessione di carrello o checkout di quel cliente;
- l'order_key sull'endpoint checkout.
Per un e-commerce è un data breach di dati personali, con gli obblighi che il GDPR prevede per questi casi.
Come capire se sei esposto: verifica versione, esposizione e log
Versione del plugin
Da bacheca WordPress: Plugin, cerca LiteSpeed Cache e leggi la versione. Con WP-CLI: wp plugin get litespeed-cache --field=version. Qualsiasi valore fino a 7.9.1 è vulnerabile.
Opzione Cache REST
Nel menu LiteSpeed Cache, sezione Cache, cerca l'impostazione relativa alla cache delle REST API. Se è attiva, la condizione di sfruttamento è soddisfatta. Il nome esatto della voce va verificato sulla tua versione del plugin.
Test diretto sugli header
Da un terminale, senza cookie, esegui curl -sI https://tuosito.it/wp-json/wc/store/v1/cart e guarda gli header di risposta. Un valore x-litespeed-cache: hit indica che la risposta arriva dalla cache e non è stata generata per te. Puoi fare la prova in modo controllato: aggiungi un prodotto al carrello da un browser, poi ripeti la richiesta curl da un altro dispositivo senza sessione. Se vedi i tuoi dati, il sito espone i dati di tutti.
Log da controllare
- Access log del web server: richieste ripetute a /wp-json/wc/store/v1/cart e /wp-json/wc/store/v1/checkout da IP senza cookie di sessione, con user agent anomali o cadenza regolare.
- Ordini con indirizzo di spedizione modificato dopo l'inserimento, o checkout completati da IP diversi da quello che ha riempito il carrello.
- Segnalazioni di clienti che hanno visto nel carrello dati non propri.
Come risolvere la vulnerabilità: patch, aggiornamento e rimedio
Il fix è stato pubblicato nel repository del plugin (changeset 3757253, file src/control.cls.php). Il numero di versione corretto non è indicato nelle fonti riportate: verifica sulla pagina del plugin su WordPress.org o sull'advisory ufficiale di LiteSpeed qual è la prima release successiva alla 7.9.1 che include la correzione, e aggiorna a quella o a una più recente. L'aggiornamento si applica da Plugin, Aggiorna, oppure con wp plugin update litespeed-cache. Dopo l'aggiornamento svuota tutta la cache: le copie già salvate restano servibili finché non vengono eliminate.
Se non puoi aggiornare subito, applica i workaround della sezione seguente. Non sono una soluzione definitiva.
Cosa fare subito: mitigazioni e hardening
- Svuota tutta la cache da LiteSpeed Cache, Toolbox, Purge All. Elimina le risposte personalizzate già memorizzate.
- Disattiva Cache REST nelle impostazioni del plugin, oppure aggiungi /wp-json/wc/store/ tra gli URI da non mettere in cache (Cache, Excludes). Poi svuota di nuovo la cache.
- Invalida le sessioni esposte. I Cart-Token serviti in cache sono utilizzabili finché validi: da WooCommerce, Stato, Strumenti, usa la pulizia delle sessioni clienti.
- Aggiorna il plugin appena hai confermato la versione corretta, e mantieni aggiornati anche WordPress core e WooCommerce. Ne ho parlato di recente per la RCE in WordPress Core.
- Riduci la superficie: se non usi la Store API da client esterni, valuta regole a livello di web server o WAF che blocchino le richieste GET senza cookie di sessione verso quegli endpoint.
- Verifica i plugin WooCommerce installati: le vulnerabilità sugli e-commerce arrivano spesso dalle estensioni, come nel caso di Security For WooCommerce.
Se sospetti una compromissione: incident response e analisi forense
Se dai log emergono accessi sospetti agli endpoint, o se un cliente segnala dati altrui nel carrello, considera l'evento un possibile data breach. Non cancellare log né cache in modo affrettato prima di averne una copia: sono la prova di cosa è stato letto e da chi. Esporta gli access log del periodo, la configurazione del plugin e l'elenco ordini con timestamp. Se il server è tuo, non riavviarlo e non reinstallare nulla finché non hai preservato i dati. Ricorda che il GDPR, all'articolo 33, impone al titolare di notificare al Garante una violazione di dati personali entro 72 ore dalla scoperta, salvo che sia improbabile un rischio per gli interessati; valuta con cura questa soglia, perché qui sono coinvolti indirizzi, email e telefoni.
Nel mio studio gestisco interventi di incident response, con acquisizione forense dei log e ricostruzione dell'accaduto, da 1.500 a 6.000 € a seconda dell'estensione. Per chi preferisce prevenire, la manutenzione del sito include il monitoraggio degli aggiornamenti di plugin e core.
Fonti ufficiali
Se gestisci un e-commerce WooCommerce e vuoi un controllo indipendente della configurazione della cache, dei log e dello stato di aggiornamento, puoi richiedere un preventivo gratuito: rispondo entro 24 ore e lavoro da remoto in tutta Italia.


