Исследователи обнаружили критическую уязвимость в почтовом клиенте с открытым исходным кодом Roundcube. Она позволяет выполнить произвольные команды на системе, просто отправив электронное письмо.
Недостаток был обнаружен фирмой RIPS Technologies и связан с функцией PHP mail(), которая используется для отправки электронной почты. При вызове этой функции PHP выполняет программу командной строки sendmail.
Проблема заключается в том, что пользовательский ввод не обрабатывается должным образом в пятом параметре функции mail(). Это позволяет злоумышленнику передавать произвольные аргументы. Об этой уязвимости было известно уже более двух лет, однако разработчики Roundcube упустили ее из вида.
RIPS объясняют, что брешь может быть использована злоумышленником, который имеет доступ к целевой системе и может посылать электронную почту со скомпрометированной машины. После получения доступа, злоумышленник может использовать брешь, введя специальный код в поле «От».
Есть несколько условий, которые должны быть соблюдены для того, чтобы уязвимость сработала. Во-первых, Roundcube должен быть настроен на использование функции mail(), во-вторых, функция mail() должна быть настроена на использование sendmail. Кроме того, в PHP должен быть отключен safe_mode и злоумышленник должен знать абсолютный путь к корневой папке.
Тем не менее, такие конфигурации по умолчанию далеко не редкость и эксперты считают, что существуют десятки или сотни тысяч уязвимых систем. Roundcube был загружен с сайта SourceForge более чем 260000 раз только в 2016 году.
С выпуском версий Roundcube