
Чувствительные административные параметры недостаточно очищаются, что позволяет злоумышленнику отравить пути к системным двоичным файлам.
Затем злоумышленник может загрузить опасные CSV-файлы, которые могут обрабатываться как PHAR-архивы, содержащие метасимволы оболочки, которые будут обработаны вызовом PHP exec(), что приводит к удалённому выполнению кода.
Критическая - 9.1 - CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
В файле functions/classes/class.Scan.php мы видим следующую структуру кода:

Первый параметр вызова exec() напрямую зависит от параметра $ping_path, который можно свободно изменять на панели настроек администратора:

Единственное условие, которое должен выполнить злоумышленник, — сделать так, чтобы функция ping_verify_path не возвращала false. Определение этого метода выглядит следующим образом:

Этот метод полностью полагается на встроенную PHP-функцию file_exists(). Эта функция поддерживает передачу ZIP-файлов (расширение .zip не обязательно) и проникает в структуру ZIP-архива. Например:

Таким образом, если злоумышленник может загрузить на сервер корректный ZIP/PHAR-архив, содержащий файл с именем, в котором есть метасимволы оболочки, проверка file_exists() будет обойдена, и эти метасимволы будут обработаны вызовом exec().
Аутентифицированный злоумышленник может загружать файлы через функциональность «Импорт подсетей XLS / CSV»:

Такой файл не обязательно должен быть корректным CSV-файлом. Если импорт завершится неудачей, файл не будет удалён с сервера. Из скрипта import-verify.php мы также знаем, где он будет сохранён:

У злоумышленника есть все предпосылки для выполнения атаки с удалённым выполнением кода:
Вредоносный архив можно создать следующим образом:

https://www.youtube.com/watch?v=oMvyfFrlRAs