CVE-2020-35730
Roundcube Roundcube Webmail
2023-06-22
Roundcube Webmail contains a cross-site scripting (XSS) vulnerability that allows an attacker to send a plain text e-mail message with Javascript in a link reference element that is mishandled by linkref_addinindex in rcube_string_replacer.php.
Технический анализ и план устранения
Суть уязвимости
CVE-2020-35730 представляет собой уязвимость типа Stored Cross-Site Scripting (XSS) в почтовом клиенте Roundcube Webmail версий до 1.2.13, 1.3.16 и 1.4.10. Проблема локализована в компоненте rcube_string_replacer.php, а именно в функции linkref_addindex.
Злоумышленник может отправить специально сформированное электронное письмо в формате Plain Text, содержащее вредоносный JavaScript-код внутри атрибутов ссылок. Из-за некорректной фильтрации и обработки ссылок в теле письма, скрипт исполняется в контексте браузера жертвы при просмотре сообщения. Это позволяет атакующему похитить сессионные куки (Session Hijacking), получить доступ к переписке или выполнить действия от имени пользователя.
Как исправить
Основным способом устранения уязвимости является обновление Roundcube Webmail до актуальных стабильных версий, в которых данная ошибка исправлена.
- Определите текущую версию Roundcube.
- Скачайте последнюю версию (LTS 1.3.x, 1.4.x или новее) с официального сайта или репозитория.
- Выполните обновление с помощью скрипта
installto.sh, указав путь к текущей установке.
./bin/installto.sh /var/www/roundcube
Если вы используете пакетный менеджер в дистрибутивах Linux (например, Debian/Ubuntu), выполните обновление системы:
apt update && apt upgrade roundcube
Для ручного исправления (если обновление невозможно) необходимо внести изменения в файл program/lib/Roundcube/rcube_string_replacer.php, добавив строгую проверку и экранирование в функции обработки ссылок, согласно официальному патчу безопасности.
Временные меры
Если немедленное обновление системы невозможно, рекомендуется предпринять следующие шаги для снижения риска:
- Настройте Content Security Policy (CSP) на веб-сервере, чтобы запретить выполнение встроенных (inline) скриптов и ограничить источники загрузки ресурсов.
- Используйте Web Application Firewall (WAF) для фильтрации входящих почтовых данных на предмет наличия подозрительных конструкций в текстовых сообщениях.
- Проинструктируйте пользователей не открывать подозрительные сообщения от неизвестных отправителей, даже если они выглядят как обычный текст.
- Отключите отображение HTML-содержимого (если применимо) и ограничьте функционал предварительного просмотра ссылок в настройках сервера.