Уязвимость в Roundcube Webmail, позволяющая выполнить код на сервере

В web-ориентированном почтовом клиенте Roundcube обнаружена опасная уязвимость, позволяющая выполнить свой код на сервере через отправку из web-интерфейса специально оформленного сообщения. Уязвимость проявляется при использовании настроек по умолчанию (для отправки используется PHP-функция mail() и утилита sendmail, отключен safe_mode).

Суть проблемы в небезопасном использовании PHP-функции mail(), в числе аргументов которой передаются полученные от пользователя непроверенные данные. В частности, для отправки сообщения в Roundcube используется код:

  $sent = mail($to, $subject, $msg_body, $header_str, "-f$from");

который приведёт к вызову утилиты sendmail с передачей в командной строке аргумента «-f$from». Так как содержимое заполняемого пользователем поля From некорректно проверяется на предмет опасных символов, в качестве отправителя можно указать, например, «example@example.com -OQueueDirectory=/tmp -X/var/www/html/rce.php», что при отправке сообщения приведёт к записи содержимого заголовка письма в файл /var/www/html/rce.php. После чего атакующий может через браузер запросить скрипт rce.php и он будет выполнен на сервере.

Проблема устранена в выпусках Roundcube 1.2.3 и 1.1.7. Администраторам Roundcube рекомендует срочно установить обновление и проверить свои серверы на предмет активности атакующих (Roundcube достаточно популярный webmail-клиент, c sourceforge за год было загружено более 260 тысяч копий). В качестве обходного метода защиты вместо PHP-функции mail() можно настроить отправку по SMTP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.