Вразливість у бібліотеці 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

Додати коментар або відгук