WordPress potrebbe essere vulnerabile a un attacco Dos devastante

È stata scoperta una vulnerabilità DoS (Denial of Service) a livello di applicazione semplice ma seria sulla piattaforma CMS   WordPress che potrebbe consentire a chiunque di mandare in crisi il sito anche con solo una singola macchina, senza dover usufruire di grandi quantità di banda, come richiesto per un attacco di tipo DDoS.

La vulnerabilità ( CVE-2018-6389 ) rimane per ora non pachata e riguarda quasi tutte le versioni di WordPress rilasciate negli ultimi nove anni, inclusa l’ultima versione stabile di WordPress (versione 4.9.2).

Scoperto dal ricercatore di sicurezza israeliano Barak Tawily , la vulnerabilità risiede nel modo in cui ” load-scripts.php”, “uno script integrato in WordPress CMS, elabora le richieste definite dall’utente.

Per chi non lo sapesse, il file load-scripts.php è stato progettato solo per gli utenti amministratori per favorire le prestazioni del sito e far si che il WordPress carichi più velocemente la pagina combinando (sul server) più file JavaScript in una singola richiesta.

Tuttavia, pare che gli autori di WordPress non abbiano mantenuto alcuna restrizione sulla funzione durante il login da amministratore, rendendo la funzionalità accessibile a chiunque.

A seconda dei plugin e dei moduli installati, il file load-scripts.php richiama selettivamente i file JavaScript necessari passando il loro nome nel parametro “load”, separato da una virgola, come nel seguente URL:

https://your-wordpress-site.com/wp-admin/load-scripts.php?c=1&load= editor, comune, profilo utente, media-widget, media-gallery

Durante il caricamento del sito web, il “load-scripts.php” (menzionato nella testa della pagina) tenta di trovare ogni nome di file JavaScript fornito nell’URL, aggiungere il loro contenuto in un singolo file e quindi inviarlo al browser dell’utente che sta visionando il sito.

Come funziona l’attacco DoS a WordPress

Secondo il ricercatore, si può semplicemente forzare load-scripts.php a chiamare tutti i possibili file JavaScript (ad esempio, 181 script) in un unico passaggio passando il loro nome nell’URL sopra, rendendo il sito Web bersaglio estremamente lento e costringendolo a consumare elevate quantità di memoria e CPU sul server.

“Esiste un elenco ben definito ($ wp_scripts), che può essere richiesto dagli utenti come parte del parametro load []. Se il valore richiesto esiste, il server eseguirà un’azione di lettura I / O per un percorso ben definito associato al valore fornito dall’utente “, afferma Tawily.

Anche se una singola richiesta non sarebbe sufficiente per abbattere l’intero sito Web, Tawily usò uno script python proof-of-concept (PoC), doser.py, che con un gran numero di richieste simultanee allo stesso URL  tentava di ridurre le prestazioni del server e la risposta della CPU.

503 service temporarily unavailable

“È il momento di ricordare ancora che load-scripts.php non richiede alcuna autenticazione, un utente anonimo può farlo. Dopo ~ 500 richieste, il server non ha risposto più o ha restituito lo stato 502/503/504 errori di codice “, dice Tawily.

Tuttavia, l’attacco da una singola macchina, con una connessione di 40 Mbps, non è stato sufficiente per bloccare un sito  Web demo in esecuzione su un server dedicato con elevata potenza di elaborazione e memoria.

Ma ciò non significa che il difetto non sia efficace contro i siti web WordPress che girano su un server pesante, poiché un attacco a livello di applicazione richiede generalmente molti meno pacchetti e larghezza di banda per raggiungere lo stesso obiettivo: abbattere un sito.

Pertanto, gli hacker con maggiore larghezza di banda o alcuni robot possono sfruttare questa vulnerabilità per colpire anche siti Web WordPress di grandi dimensioni o particolarmente popolari.

WordPress rilascia la versione 4.9.4. Risolverà il problema?

Il team di sviluppo ha rilasciato poche ore fa una patch aggiuntiva che, secondo il codex, va a fixare alcuni problemi sugli aggiornamenti automatici del Framework “la nota di aggiornamento la trovate qui“.  D’altronde pare che questo bug in grado di generare un Dos sia stato imputato dagli sviluppatori a un mero problema di rete e di protezione dei sistemi server e non sia un problema di WordPress. Nonostante tutto vi invitiamo a tenere sotto controllo i vostri siti ed eventualmente potete valutare anche questo script che dovrebbe aiutarvi a risolvere il problema. Vi ricordo anche che molti Provider hanno già fra i loro servizi una serie di tools anti DDos.

Articolo originale pubblicato su Hacker News che potete trovare qui.