Vulnerabilità XML Quadratic Blowup Attack su Drupal e WordPress, risolta con le ultime versioni

Vulnerabilità XML Quadratic Blowup Attack su Drupal e WordPress, risolta con le ultime versioni

Le versioni di wordpress fino alla 3.9.1 sono affette da un bug considerato convenzionalmente minore, ma che dovrebbe destare le preoccupazioni di chiunque abbia installato il CMS per il proprio sito web: una vulnerabilità per un attacco di tipo DoS, che potrebbe rendere il vostro sito improvvisamente inutilizzabile. Le versioni 3.9.2 di WP (e anche quelle di Drupal 7.31+ / 6.33+ ) hanno messo una patch a questo problema, che permetteva ad un attaccante di saturare le risorse del server mediante un file XML malevolo di pochi kb.

Per risolvere, l’utente non deve fare altro che aggiornare i due CMS all’ultima versione disponibile al più presto (e, al limite, disattivare del tutto il servizio RPC, qualora non fosse utilizzato, per evitare problemi futuri).

L’attacco, noto tecnicamente come “XML Quadratic Blowup Attack“, permette di sfruttare file definiti ad hoc per fare in modo di espandere le entità del file XML in modo esponenziale, sulla falsariga del Billion Laughs, ad esempio:


<!ELEMENT lolz (#PCDATA)>
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
&lol9;

Qualora il parser XML dei due CMS riceva un documento del genere, rileverebbe un elemento root “lolz” che contiene il testo “&lol9;”, che a sua volta espande in una stringa di dieci “&lol8;” che, a loro volta, espandono in altrettanti “&lol7;” e così via. Un file di circa un 1Kb, seguendo questo criterio, può arrivare ad occupare fino a 3 GB di memoria (costruita di “lol” esponenziali).

Il video seguente mostra un esempio dell’attacco in questione su un WordPress su localhost.

WordPress Denial Of Service PoC Video from Nir on Vimeo.

Per la cronaca, la questione non sembra interessare Joomla! che ha RPC-XML disattivato dalla versione 1.5 in poi.

Photo by devdsp

Ti piace questo articolo?

0 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.