В библиотеката , предоставяща обработчици за защита от чрез заместителни файлове в формат «Phar», (), позволяваща заобикаляне на защитата от десериализация на код чрез заместителни символи «..» в пътя. Например, атакуващият може да използва за атака URL формат «phar:///path/bad.phar/../good.phar» и библиотеката ще извлече при проверка основното име «/path/good.phar», въпреки че при по-нататъшна обработка на подобен път ще бъде използван файлът «/path/bad.phar».
Библиотеката е разработена от създателите на CMS TYPO3, но също така се използва в проекти Drupal и Joomla, което ги прави също податливи на уязвимост. Проблемът е отстранен в версиите . Проектът Drupal е отстранил проблема в обновленията 7.67, 8.6.16 и 8.7.1. В Joomla проблемът се проявява от версия 3.9.3 и е отстранен в версия 3.9.6. За отстраняването на проблема в TYPO3 е необходимо да се обнови библиотеката PharStreamWapper.
От практическа гледна точка, уязвимостта в PharStreamWapper позволява на потребител на Drupal Core с административни права за теми (‘Administer theme’) да качи злонамерен phar файл и да постигне изпълнение на разположения в него PHP код под прикритие на легитимен phar архив. Напомняме, че същността на атаката «Phar десериализация» е, че при проверка на качените файлове с помощта на PHP функцията file_exists(), тази функция автоматично извършва десериализация на метаданните от файлове Phar (PHP Archive) при обработка на пътища, започващи с «phar://». Предаването на phar файл е възможно под формата на изображение, тъй като функцията file_exists() определя MIME типа по съдържанието, а не по разширението.
Източник: opennet.ru
