WordPress: il plugin The Official Facebook Chat è affetto da un grosso problema di sicurezza

WordPress il plugin The Official Facebook Chat è afflitto da un grosso problema di sicurezza

WordPress il plugin The Official Facebook Chat è afflitto da un grosso problema di sicurezza

Verso il 26 giugno del 2020, il team di Wordfence, azienda che ha realizzato il noto plugin dedicato alla sicurezza di WordPress, ha scoperto una vulnerabilità nel plugin The Official Facebook Chat, add-on installato su oltre 80.000 siti web. Il bug ha consentito ai malintenzionati di collegare il proprio account Facebook Messenger a qualsiasi sito che utilizzava il plugin.

La stessa Wordfence ha fatto sapere di aver provato a contattare Facebook durante la stessa giornata ma il colosso social ha risposto soltanto dopo 4 giorni (il 30 giugno). Dopo molte vicissitudini, sempre a detta di Wordfence, Facebook ha rilasciato una patch il 28 luglio 2020.

The Official Facebook Chat quindi è stato aggiornato e la versione 1.6 è quella che ha sistemato definitivamente questa vulnerabilità.

Suggeriamo di aggiornare il plugin Official Facebook Chat all’ultima versione mentre, per chi vuole approfondire, invitiamo di continuare a leggere.

The Social Facebook Chat

The Social Facebook Chat

Più nel dettaglio

Il plugin ufficiale della chat di Facebook è un plugin molto semplice, progettato per aggiungere la chat di Facebook Messenger a qualsiasi sito WordPress, il tutto per poter interagire con i visitatori del sito web.

Il suo lavoro viene svolto tramite una finestra di dialogo su Facebook.com ma, una volta terminato aggiorna le opzioni del plugin fbmcc_pageIDfbmcc_locale per impostare l’ID della pagina che verrà collegata al pop-up della chat nel front-end del sito, compresa la lingua che dovrebbe essere usata.

Per fare ciò il plugin registra un’azione AJAX wp_ajax_update_options agganciata alla funzione fbmcc_update_options.

add_action( 'wp_ajax_update_options', 'fbmcc_update_options');
 
function fbmcc_update_options() {
  check_ajax_referer( 'update_fmcc_code' );
  update_option( 'fbmcc_pageID', sanitize_text_field($_POST['pageID']));
  update_option( 'fbmcc_locale', sanitize_text_field($_POST['locale']));
  wp_die();
}

Sfortunatamente questa azione AJAX non va a controllare se la richiesta proviene da un utente reale. Ciò ha consentito ad un utente qualsiasi di inviare una richiesta e collegare il proprio account Facebook Messenger.

The Social Facebook Chat - Setup prima installazione

The Social Facebook Chat – Setup prima installazione

Inoltre, il nonce utilizzato per la protezione CSRF, è facilmente individuabile nel codice sorgente di qualsiasi pagina della dashboard di WordPress (/wp-admin) a causa dell’azione admin_enqueue_scripts registrata che rendeva visibile il nonce nell’area di amministrazione del sito.

L’area wp-admin di WordPress è lo standard di questo CMS ed è quindi molto famosa: questo significa che qualsiasi utente può autenticarsi come amministratore grazie alla funzione update_options che supera così il controllo check_ajax_referer.

add_action( 'admin_enqueue_scripts', 'fmcc_localize_ajax' );
function fmcc_localize_ajax() {
  $ajax_object = array(
    'nonce' => wp_create_nonce( 'update_fmcc_code' )
  );
 
  wp_register_script( 'code_script', plugin_dir_url( __FILE__ ) . 'script.js' );
  wp_localize_script( 'code_script', 'ajax_object', $ajax_object );
  wp_enqueue_script( 'code_script' );
}

Una volta fatto ciò, i malintenzionati possono collegare il proprio account Facebook aggiornando l’ID della pagina e se sul sito web è presente il plugin The Official Facebook Chat, l’utente può registrarsi sul sito e accedere all’area wp-admin totalmente indisturbato.

The Social Facebook Chat - Selezione pagina Facebook nelle impostazioni

The Social Facebook Chat – Selezione pagina Facebook nelle impostazioni

Inoltre, l’utente può ricevere tutti i messaggi avviati nella chat di Facebook Messenger senza che l’amministratore del sito si accorga di nulla, non ricevendo poi alcun messaggio della chat.

Come può essere utilizzata questa vulnerabilità

Gli utenti del sito potrebbero trovarsi a chattare con un utente malintenzionato e non il reale amministratore del sito web, quest’ultimo può così chiedere informazioni sensibili, credenziali e quant’altro, totalmente indisturbato.

The Social Facebook Chat - Selezione lingua

The Social Facebook Chat – Selezione lingua

Un altro possibile scenario per sfruttare questa vulnerabilità è che un concorrente possa usarla a proprio vantaggio: non fornendo infatti alcun ID di pagina, un concorrente diretto potrebbe disabilitare la chat, provocando un disservizio sul sito e, probabilmente, un calo del fatturato.

Peggio ancora, il finto utente potrebbe collegare una pagina Facebook falsa che assomigli alla pagina originale e ufficiale del sito web: quando i visitatori del sito iniziano a interagire, questo potrebbe rivolgersi agli utenti in modo scortese e offensivo, dissuadendo i visitatori del sito dal fare ulteriori acquisti, rovinando di fatto la reputazione del sito o reindirizzando gli utenti ad acquistare da un’altra parte. 

The Social Facebook Chat - Configurazione colori e tempo di risposta

The Social Facebook Chat – Configurazione colori e tempo di risposta

Conclusione

Invitiamo chiunque utilizzi The Official Facebook Chat ad aggiornare il plugin alla versione 1.6; release dove è stata risolta questo bug di sicurezza.

Al momento della stesura di questo articolo The Official Facebook Chat è arrivato alla versione 1.7, ed include la risoluzione di questo problema oltre alla totale compatibilità con WordPress 5.5.

Dal canto nostro invitiamo sempre gli utenti e i nostri clienti alla cautela: ricordatevi di utilizzare un servizio di Backup che vi possa aiutare in caso di problematiche del vostro sito web, come in questo caso.

Inoltre ricordiamo che tenere aggiornati i plugin e il CMS stesso conviene sempre, sia dal punto di vista della sicurezza, sia per tenere sempre in linea il sito web con gli ultimi aggiornamenti tecnologici.

Fonte

Rispondi all'articolo

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Time limit is exhausted. Please reload the CAPTCHA.