È stato riscontrato che i componenti aggiuntivi essenziali per Elementor, un popolare plug-in WordPress utilizzato in oltre un milione di siti, presentano una vulnerabilità critica di esecuzione di codice remoto (RCE) nella versione 5.0.4 e precedenti.
Il difetto consente a un utente non autenticato di eseguire un attacco di inclusione di file locali, come un file PHP, per eseguire codice sul sito.
“La vulnerabilità dell’inclusione di file locali esiste a causa del modo in cui i dati di input dell’utente vengono utilizzati all’interno della funzione inclusione di PHP che fa parte delle funzioni ajax_load_more e ajax_eael_product_gallery” spiegano i ricercatori di PatchStack che hanno scoperto la vulnerabilità.
L’unico prerequisito per l’attacco è che il sito abbia i widget “galleria dinamica” e “galleria prodotti” abilitati in modo che non sia presente un controllo token.
I ricercatori hanno scoperto la vulnerabilità il 25 gennaio 2022 ma lo sviluppatore del plugin era già a conoscenza della sua esistenza.
In effetti, l’autore ha rilasciato la versione 5.0.3 per risolvere questo problema applicando una funzione “sanitize_text_field” sui dati di input dell’utente.
Tuttavia, questa sanificazione non impedisce l’inclusione di payload locali.
Il secondo tentativo è stato la versione 5.0.4, che ha aggiunto la funzione “sanitize_file_name” e ha tentato di rimuovere caratteri speciali, punti, barre e tutto ciò che potrebbe essere utilizzato per ignorare il passaggio di sanificazione del testo.
Questa era la versione che Patchstack ha testato e ha trovato vulnerabile, quindi hanno informato lo sviluppatore che la correzione non aveva mitigato sufficientemente il problema.
Alla fine, l’autore ha rilasciato la versione 5.0.5 che ha implementato la funzione “realpath” di PHP, prevenendo risoluzioni dannose dei percorsi.
Questa versione è stata rilasciata il 28 gennaio 2022, e in questo momento è stata installata solo circa 380.000 volte secondo le statistiche di download di WordPress.
Con il plug-in installato in oltre 1 milione di siti WordPress, significa che ci sono oltre 600.000 siti che non hanno ancora applicato l’aggiornamento di sicurezza.
Se sei tra i tanti che utilizzano Essential Addons per Elementor, puoi ottenere l’ultima versione di WordPress o avviare l’aggiornamento direttamente dalla dashboard di WordPress.
Per impedire che qualcuno possa sfruttare i difetti di inclusione di file locali anche quando non possono essere mitigati direttamente, basterà attenersi ad una semplice procedura:
- Salva i percorsi dei tuoi file in un database sicuro e fornisci un ID per ognuno di essi.
- Usa i file della lista consentita verificati e protetti e ignora tutto il resto.
- Non includere file su un server Web che possono essere compromessi, ma utilizzare invece un database.
- Fai in modo che il server invii automaticamente le intestazioni di download invece di eseguire i file in una directory specificata.