Sicurezza

Nuovo pericoloso bug in WordPress: bisogna aggiornare!

Il popolare sistema di blogging e contenuti WordPress ha appena raggiunto la versione 3.6.1. Normalmente non ci occupiamo nel dettaglio di semplici update, ma lo facciamo in quanto la nuova patch va a risolvere ben tre importanti falle di sicurezza. Una in particolare va a “tappare” la possibilità di esecuzione di codice remoto scoperta da un ricercatore di sicurezza belga, Tom Van Goethem.

I plug-in sono estremamente utili, ma anche fonte di parecchi guai. Dal momento che molti vengono prodotti da piccole realtà o addirittura da singoli programmatori, c'è il rischio che vengano sfruttati per compiti che non erano previsti.

 

Questi ha rilasciato una descrizione dettagliata di come abbia scoperto il bug, passo per passo, e di come da una semplice vulnerabilità sia riuscito poi a passare alle vie di fatto, sfruttando l'exploit; per fortuna il ricercatore non ha rivelato proprio tutto, dichiarando che “per questioni di etica, non rivelerò il 'proof concept 'di questo exploit, in quanto ci sono troppe installazioni di WordPress in giro”. Purtroppo, sappiamo benissimo che una volta indicata la via, gli hacker tosti non ci mettono molto a scovare le tecniche necessarie allo sfruttamento del bug. Il problema, in particolare, stavolta riguardava la serializzazione PHP, un termine che indica il fatto di prendete dei dati o addirittura del codice da un ambiente di programmazione e convertirlo in una stringa di testo. Questo significa che i dati possono essere salvati con semplicità, spostati e poi riconvertiti in codice (eventualmente malevolo) in seguito. Si chiama serializzazione in quanto anche strutture che hanno un layout complesso in memoria, come array o tabelle, poi vengono comunque “appiattite” in una serie di byte.  L'operazione di passare da una singola stringa di testo a ciò che poi va a girare effettivamente nel programma è ovviamente chiamata deserializzazione. Qualsiasi programma che vada ad attingere a dati serializzati, corre il rischio di ritrovarsi con dei dati “inattesi” ed è quanto sostanzialmente accadeva a WordPress fino all'update 3.6.1! In pratica WordPress fino alla versione 3.6.0 non andava a verificare i pacchetti di dati serializzati che riceveva, ma andava ad eseguirli in un ambiente live; è un po' come provare a sparare con una pistola per capire se essa sia carica o meno. Come conseguenza WordPress suggerisce caldamente di “aggiornare immediatamente tutti vostri siti”. Come non dargli torto?