WPBakery, uno dei plugin più famosi di WordPress ed installato su oltre 4,3 milioni di siti web, è affetto da una grossa falla di sicurezza.
A comunicarlo è il team di Wordfence che ha scoperto la possibilità che alcuni utenti fraudolenti, autenticati come collaboratore o autore su WordPress, possono inserire JavaScript malevoli negli articoli e nelle pagine di WordPress gestite con il WPBakery.
Ma partiamo dal principio e capiamo bene cos’è innanzitutto il WPBakery.
WPBakery: cos’è?
WPBakery, come dicevamo, è forse il page builder più famoso di WordPress, un plugin molto facile da usare che consente ai proprietari di siti web di creare pagine personalizzate utilizzando varie funzionalità di trascinamento come pulsanti, immagini, box di testo, colonne, fasce colorate, ecc.
Si tratta ovviamente di un plugin proprietario che si può acquistare a pagamento oppure lo si trova all’interno di molti template professionali, anch’essi ovviamente a pagamento.
Il problema di WPBakery nel dettaglio
Come dicevamo ad inizio articolo, il problema di sicurezza di WPBakery dà la possibilità agli utenti autori ed editori di WordPress di modificare i post di altri utenti: il plugin ha esplicitamente disabilitato qualsiasi controllo predefinito nella funzione saveAjaxFe utilizzando kses_remove_filters ();.
Ciò significa che qualsiasi utente con accesso al builder WPBakery può inserire HTML e JavaScript in un articolo o pagina, utilizzando il page builder.
[adrotate banner=”1″]
A seguire la funzione incriminata:
public function saveAjaxFe() { vc_user_access()->checkAdminNonce()->validateDie()->wpAny( 'edit_posts', 'edit_pages' )->validateDie(); $post_id = intval( vc_post_param( 'post_id' ) ); if ( $post_id > 0 ) { ob_start(); // Update post_content, title and etc. // post_title // content // post_status if ( vc_post_param( 'content' ) ) { $post = get_post( $post_id ); $post->post_content = stripslashes( vc_post_param( 'content' ) ); $post_status = vc_post_param( 'post_status' ); $post_title = vc_post_param( 'post_title' ); if ( null !== $post_title ) { $post->post_title = $post_title; } kses_remove_filters(); remove_filter( 'content_save_pre', 'balanceTags', 50 );
Inoltre, grazie alla funzionalità “onclick” per la personalizzazione dei pulsanti, un’utente malintenzionato potrebbe iniettare codice JavaScript dannoso all’interno di un pulsante che verrebbe poi “attivato” con un click del pulsante stesso; il tutto usando le funzioni vc_raw_js, vc_raw_html e il pulsante utilizzando gli shortcode custom_onclick per aggiungere JavaScript dannoso ai post.
WPBakery e il bug di sicurezza
Come se non bastasse, poiché gli utenti collaboratori richiedono l’approvazione prima della pubblicazione di un articolo, è molto probabile che un amministratore visualizzi una pagina contenente JavaScript dannoso creato da un utente malintenzionato.
Eseguendo questo JavaScript nel browser dell’amministratore, sarebbe possibile per un utente malintenzionato creare un nuovo utente amministratore o addirittura iniettare una backdoor.
Come risolvere il bug di WPBakery
La falla di sicurezza di WPBakery è stata finalmente risolta dopo oltre due mesi dalla sua scoperta, avvenuta il 27 luglio 2020, con la versione 6.4.1.
Com’è stata scoperta la falla di sicurezza
Il team di Wordfence, il noto plugin dedicato alla sicurezza di WordPress, ha dichiarato che per chi non riuscisse ad aggiornare WPBakery, la versione gratuita di Wordfence blocca questo bug già dal 28 agosto 2020.
A seguire vi lasciamo con le varie fasi di collaborazione tra il team di Wordfence che ha scoperto la vulnerabilità e quello di WPBakery che si è adoperato per risolvere il problema:
- 27 luglio 2020 – Wordfence scopre la vulnerabilità di WPBakery e sviluppa una regola firewall e comincia i test;
- 28 luglio 2020 – La regola firewall è stata sufficientemente testata e rilasciata agli utenti premium di Wordfence. Wordfence ha un primo contatto con il team del plugin WPBakery;
- 29 luglio , 2020 – Il team di WPBakery risponde confermando il problema. Wordfence invia i dettagli finora scoperti;
- 21 agosto 2020 – Dopo poco tempo viene rilasciata una patch iniziale per risolvere il problema di vulnerabilità di WPBakery;
- 26 agosto 2020 – Wordfence fa sapere al team di WPBakery che sono rimaste irrisolte alcune problematiche minori che richiedono ancora un loro intervento;
- 28 agosto 2020 – Gli utenti che usano Wordfence gratuitamente ricevono la regola firewall per risolvere il problema di vulnerabilità di WPBakery;
- 2 settembre 2020 – Wordfence chiede conferma al team di WPBakery di aver ricevuto la loro ultima email delle problematiche minori;
- 9 settembre 2020 – Il team di WPBakery conferma di aver ricevuto la loro email e conferma che sta lavorando per ottenere il rilascio di una patch aggiuntiva per risolvere le problematiche minori;
- 11 settembre 2020 – Il team di WPBakery rilascia una patch aggiuntiva parziale non ancora sufficientemente risolutiva del problema;
- dall’11 settembre al 23 settembre 2020 – Wordfence lavora insieme al Team di WPBakery per ottenere una patch adeguata;
- 24 settembre 2020 – Rilasciata la Patch che risolve la vulnerabilità di WPBakery nella versione 6.4.1.
Conclusione
Noi di FlameNetworks non ci stancheremo mai di sottolineare come sia importante tenere aggiornate le installazioni di WordPress, dei temi professionali e degli stessi plugin.
Nel caso di WPBakery, al momento della stesura di questo articolo, l’ultima versione è la 6.4.1 che risolve, come detto poco fa, il bug di sicurezza mettendo al sicuro l’installazione di WordPress.
Se conoscete qualcuno che usa il WPBakery sul proprio sito, vi invitiamo a condividere la notizia e ad inoltrare loro questo avviso in modo da poter provvedere all’aggiornamento.
Dal canto nostro continueremo a monitorare la situazione e a comunicarvi se ci dovessero essere altre novità a riguardo.
Bhe ottimo dai . Solo 2 mesi per risolvere con le direttive di WordFence … non credo di avere più parole per descrivere Bakery.