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

découvert par Red Timmy Security
Analyse technique :
Avis de sécurité :
Le fichier change_config.php de FlexPaper (PHP) ne vérifie pas si l'administrateur est authentifié correctement, permettant à un attaquant de supprimer des fichiers arbitraires sur le serveur :

unlinkUn attaquant peut élaborer une requête comme celle-ci et supprimer des fichiers dans le dossier de son choix :
POST /flexpaper/php/change_config.php HTTP/1.1
Host: 127.0.0.1:8888
[...]
SAVE_CONFIG=1&SWF_Directory=config/
Avec cette requête, un attaquant supprime tous les fichiers du répertoire config.
Puisque tous les fichiers du dossier config/ sont supprimés, FlexPaper pensera que l'application n'a jamais été initialisée :

Par conséquent, un attaquant peut à nouveau configurer FlexPaper. Mais pourquoi ?
À l'intérieur de setup.php, il y a une fonction appelée pdf2swfEnabled qui utilise la commande exec en PHP avec un paramètre passé en POST par l'utilisateur. Comme il s'agit de l'initialisation (étape 2.) de FlexPaper, il n'y a pas d'authentification.

Un attaquant peut élaborer une charge utile comme celle-ci : ?step=4&PDF2SWF_PATH=id; résultant en exec(id; --version 2>&1).
L'attaquant peut rediriger la sortie de la commande vers un fichier dans le dossier config et faire une requête GET pour lire la sortie :

La vérification de l'authentification a été ajoutée au début de change_config.php
