Come correggere la vulnerabilità di 301 Redirects – Easy Redirect Manager
Venerdì 13 dicembre (ma che combinazione!!) è stata scoperta la vulnerabilità del plugin per WordPress 301 Redirects – Easy Redirect Manager. Questo plugin è installato su oltre 70.000 siti Web. Attraverso questi punti deboli qualsiasi utente autenticato anche con ruolo di semplice sottoscrittore, poteva modificare, eliminare e iniettare regole di reindirizzamento che potevano comportare la perdita di disponibilità del sito o, nel caso peggiore, potevano reindirizzare gli utenti verso altri siti che poi avrebbero potuto richiedere le credenziali di accesso tramite pagine di phishing.
Gli sviluppatori naturalmente, sono subito intervenuti rilasciando patch che correggevano la vulnerabilità (le patch sono inserite dalla versione 2.45 in poi).
Tabella dei contenuti
Azioni senza alcun controllo sull’autorizzazione
Questo plugin, sostanzialmente, permetteva di inserire nuovi reindirizzamenti facendo un semplice controllo attraverso la funzione is_admin() apparentemente sicura per impedire accesssi non autorizzati.
if (is_admin()) { ... // Ajax funcs add_action('wp_ajax_eps_redirect_get_new_entry', array($this, 'ajax_get_entry')); add_action('wp_ajax_eps_redirect_delete_entry', array($this, 'ajax_eps_delete_entry')); add_action('wp_ajax_eps_redirect_get_inline_edit_entry', array($this, 'ajax_get_inline_edit_entry')); add_action('wp_ajax_eps_redirect_save', array($this, 'ajax_save_redirect'));
In realtà questa funzione verifica solo se la dashboard o il pannello amministrativo sta tentando di essere visualizzato. Secondo WordPress.org questa funzione non verifica se l’utente corrente è autorizzato a visualizzare la dashboard o il pannello di amministrazione. Lo stesso vale per la funzione admin-ajax: essa verifica soltanto che la richiesta provenga dal pannello di amministrazione ma non verifica alcuna autorizzazione.
Mancanza di una corretta convalida dell’input
Inoltre, il parametro identificativo della nuova regola salvata o modificata mancava di convalida o sanificazione dell’input. Questo comportava una vulnerabilità XSS che poteva essere sfruttata da sola ma anche insieme al reindirizzamento.
Protezione CSRF mancante
La versione vulnerabile del plugin, inoltre, non utilizzava una chiave per il modulo inviato come controllo dei dati e della loro provenienza. Quindi le modifiche dei redirect e i nuovi inserimenti venivano eseguiti sia da utenti non autorizzati sia senza alcun controllo da parte della provenienza del modulo.
Conclusioni
Questo mio articolo ha voluto dimostrarti che nonostante tutti gli strumenti che hai a disposizione oggi ti possano permettere di creare in autonomia un sito internet è sempre più conveniente affidarsi ad un professionista che conosce molto meglio gli strumenti di cui può disporre e soprattutto conosce le vulnerabilità e i plugin da usare e quelli poco affidabili.
Per una consulenza nello sviluppo del tuo sito web, scrivimi qui.
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!