
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6

обнаружено Red Timmy Security
Технический анализ:
Рекомендации по безопасности:
Файл change_config.php FlexPaper (PHP) не проверяет, прошел ли администратор надлежащую аутентификацию, что позволяет злоумышленнику удалять произвольные файлы на сервере:

unlinkЗлоумышленник может сформировать такой запрос и удалить файлы в любой выбранной папке:
POST /flexpaper/php/change_config.php HTTP/1.1
Host: 127.0.0.1:8888
[...]
SAVE_CONFIG=1&SWF_Directory=config/
С помощью этого запроса злоумышленник удаляет все файлы в каталоге config.
Поскольку все файлы в папке config/ удалены, FlexPaper будет считать, что приложение никогда не было инициализировано:

Таким образом, злоумышленник может заново настроить FlexPaper. Но зачем?
Внутри setup.php есть функция pdf2swfEnabled, которая использует команду exec в PHP с параметром, передаваемым пользователем через POST. Поскольку это инициализация FlexPaper (см. пункт 2), аутентификация отсутствует.

Злоумышленник может сформировать payload следующего вида: ?step=4&PDF2SWF_PATH=id;, что приведет к выполнению exec(id; --version 2>&1).
Злоумышленник может перенаправить вывод команды в файл внутри папки config и выполнить GET-запрос для чтения результата:

Проверка аутентификации была добавлена в начало файла change_config.php
