Уразлівасць у бібліятэцы PharStreamWrapper, якая закранае Drupal, Joomla і Typo3

У бібліятэцы PharStreamWrapper, якая прадстаўляе апрацоўшчыкі для абароны ад правядзення нападаў праз падстаноўку файлаў у фармаце «Phar», выяўлена уразлівасць (CVE-2019-11831), якая дазваляе абыйсці абарону ад дэсерыялізацыі кода праз падстаноўку сімвалаў «..» у шляху. Напрыклад, атакавалы можа выкарыстоўваць для нападу URL выгляду "phar:///path/bad.phar/../good.phar" і бібліятэка вылучыць пры праверцы базавае імя "/path/good.phar", хоць пры далейшай апрацоўцы падобнага шляху. будзе выкарыстаны файл "/path/bad.phar".

Бібліятэка распрацавана стваральнікамі CMS TYPO3, але таксама прымяняецца ў праектах Drupal і Joomla, што робіць іх таксама схільным да ўразлівасці. Праблема ўхіленая ў выпусках PharStreamWrapper 2.1.1 і 3.1.1. Праект 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 deserialization" у тым, што пры праверцы загружаных файлаў дапамогі PHP-функцыі file_exists(), гэтая функцыя аўтаматычна выконвае дэсерыялізацыю метададзеных з файлаў Phar (PHP Archive) пры апрацоўцы шляхоў, якія пачынаюцца з "phar://" . Перадача phar-файла магчымая пад выглядам карцінкі, бо функцыя file_exists() вызначае MIME-тып па змесціва, а не па пашырэнні.

Крыніца: opennet.ru

Дадаць каментар