В уеб-интерфейса J-Web, който се използва в мрежовите устройства на компания Juniper, оборудвани с операционната система JunOS, са открити няколко уязвимости, най-опасната от които (CVE-2022-22241) позволява отдалечено без автентикация да се изпълни злонамерен код в системата чрез изпращане на специално подготвен HTTP-запрос. На потребителите на оборудването Juniper се препоръчва да инсталират фърмуерно обновление, а ако това не е възможно, да се уверят, че достъпът до уеб-интерфейса е блокиран от външни мрежи и е ограничен само до доверени хостове.
Същността на уязвимостта е, че подаденият от потребителя файлов път се обработва в скрипта /jsdm/ajax/logging_browse.php без филтриране на префикса с типа съдържание преди проверката за автентикация. Атакуващият може да подаде злонамерен phar-файл под формата на изображение и да постигне изпълнението на PHP-код, съдържащ се в разположения phar архив, чрез използване на метода на атака „Phar десериализация“ (например, като посочи в заявката „filepath=phar:/път/pharfile.jpg“).
Проблемът е, че при проверката на качения файл чрез PHP функцията is_dir(), тази функция автоматично извършва десериализация на метаданни от Phar архива (PHP Archive) при обработка на пътища, които започват с „phar://“. Аналогичен ефект се наблюдава и при обработката на файлови пътища, подадени от потребителя, в функциите file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() и filesize().
Атаката се усложнява от факта, че освен иницииране на изпълнението на phar-архива, нападателят трябва да намери начин да го качи на устройството (чрез достъп до /jsdm/ajax/logging_browse.php може само да се посочи път за изпълнение на вече съществуващ файл). Сред възможните сценарии за попадане на файлове на устройството се споменават качването на phar-файл под формата на изображение чрез услуга за предаване на изображения и подмяната на файл в кеша на уеб съдържание.
Други уязвимости:
- CVE-2022-22242 — подмяна неотфильтрованих външни параметри в извода на скрипта error.php, позволяваща межсайтово скриптиране и изпълнение на произволен JavaScript код в браузъра на потребителя при преминаване през линк (например, "https://JUNOS_IP/error.php?SERVER_NAME="). Уязвимостта може да се използва за прихващане на параметри на сесията на администратора, ако атакуващият успее да накара администратора да отвори специално изработен линк.
- CVE-2022-22243, CVE-2022-22244 — подмяна на XPath изрази чрез скриптове jsdm/ajax/wizards/setup/setup.php и /modules/monitor/interfaces/interface.php, позволяваща на непривилегирован аутентифициран потребител да манипулира сесиите на администратора.
- CVE-2022-22245 — липса на адекватно почистване на последователността ".." в пътищата, обработвани в скрипта Upload.php, позволяваща на аутентифициран потребител да качи свой PHP файл в директория, допускаща изпълнение на PHP скриптове (например, като предава път "fileName=\..\..\..\..\www\dir\new\shell.php").
- CVE-2022-22246 — възможност за изпълнение на произволен локален PHP файл чрез манипулации на аутентифициран потребител с скрипта jrest.php, в който външни параметри се използват за формиране на името на файла, зареждано от функцията "require_once()" (например, "/jrest.php?payload=alol/lol/any\..\..\..\..\any\file").
Източник: opennet.ru
