Nella libreria , che fornisce gestori per la protezione da attraverso la sostituzione di file in formato «Phar», (), che consente di aggirare la protezione dalla deserializzazione del codice attraverso l'inserimento di caratteri «..» nel percorso. Ad esempio, un attaccante potrebbe utilizzare un URL del tipo «phar://path/bad.phar/../good.phar» e la libreria estrarrà durante il controllo il nome di base «/path/good.phar», sebbene durante il successivo trattamento di un simile percorso verrà utilizzato il file «/path/bad.phar».
La libreria è stata sviluppata dai creatori di CMS TYPO3, ma viene utilizzata anche in progetti Drupal e Joomla, rendendoli a loro volta vulnerabili. Il problema è stato risolto nelle versioni . Il progetto Drupal ha risolto il problema negli aggiornamenti 7.67, 8.6.16 e 8.7.1. In Joomla, il problema si manifesta a partire dalla versione 3.9.3 ed è stato risolto nella versione 3.9.6. Per risolvere il problema in TYPO3 è necessario aggiornare la libreria PharStreamWapper.
Dal punto di vista pratico, la vulnerabilità in PharStreamWapper consente a un utente di Drupal Core, che dispone di autorizzazioni da amministratore del tema (‘Administer theme’), di caricare un file phar malevolo e ottenere l'esecuzione del codice PHP che contiene sotto le sembianze di un legittimo archivio phar. Ricordiamo che l'essenza dell'attacco «Phar deserialization» è che quando i file caricati vengono controllati dalla funzione PHP file_exists(), questa funzione esegue automaticamente la deserializzazione dei metadati dai file Phar (PHP Archive) quando si elaborano percorsi che iniziano con «phar://». La trasmissione di un file phar è possibile sotto forma di immagine, poiché la funzione file_exists() determina il tipo MIME in base al contenuto e non all'estensione.
Fonte: opennet.ru
