
Название уязвимости: Command Injection
Автор: Erick Duarte
Версия: < 3.2.5-2
Уязвимость возникает при использовании модуля Task Manager совместно с Cron Profile. Для эксплуатации этой уязвимости необходимо поместить скрипт в определенную папку внутри ОС. Папка: "/var/lib/vitalpbx/scripts".
Итак, из любопытства я начал анализировать, что отправляется на сервер с помощью Burp. Для этого я создал Cron Profile для выполнения каждую минуту.

Затем я приступил к созданию Task Manager.

В поле скрипта я заметил, что передается имя файла. Поэтому я решил вставить полезную нагрузку reverse shell в кодировке base64 (чтобы избежать ошибок со специальными символами) и отправил ее.

Затем я отправил POST-запрос, чтобы применить настройки.

И вот оно — мы получили shell.

Я понимаю, что требуется относительно высокий уровень привилегий, и это также зависит от наличия скрипта в определенной директории. В VitalPBX можно создавать нескольких пользователей и предоставлять различные типы разрешений. Что произойдет, если эти разрешения будут настроены неправильно? Кроме того, существует возможность создать Tenant. Если один из этих Tenants сможет эксплуатировать эту уязвимость, он потенциально может получить полный доступ к серверу, включая другие Tenants.
Я надеюсь, что мои находки внесут вклад в сообщество по безопасности, и я верю, что VitalPBX внесет необходимые исправления.