CVE-2023-5631
Roundcube Webmail
2023-10-26
Roundcube Webmail contains a persistent cross-site scripting (XSS) vulnerability that allows a remote attacker to run malicious JavaScript code.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-5631 представляет собой критическую уязвимость типа Stored XSS (хранимый межсайтовый скриптинг) в Roundcube Webmail версий до 1.4.15, 1.5.x до 1.5.5 и 1.6.x до 1.6.4.
Проблема заключается в недостаточной очистке (sanitization) входящих данных при обработке HTML-сообщений, содержащих SVG-изображения. Злоумышленник может отправить специально сформированное письмо с вредоносным JavaScript-кодом, встроенным в атрибуты SVG. При просмотре такого письма пользователем код выполняется в контексте его сессии, что позволяет атакующему похитить токены доступа, прочитать переписку или выполнить действия от имени жертвы.
Как исправить
Основным и рекомендуемым способом устранения уязвимости является обновление Roundcube до актуальных безопасных версий.
- Определите текущую версию Roundcube.
grep "RCMAIL_VERSION" /var/www/roundcube/program/include/iniset.php
- Создайте резервную копию базы данных и файлов.
mysqldump roundcubemail > roundcube_backup.sql
cp -R /var/www/roundcube /var/www/roundcube_backup
- Скачайте последнюю стабильную версию (например, 1.6.4+ или 1.5.5+) с официального сайта или репозитория GitHub.
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.4/roundcubemail-1.6.4-complete.tar.gz
- Распакуйте архив и запустите скрипт обновления.
tar -xzf roundcubemail-1.6.4-complete.tar.gz
cd roundcubemail-1.6.4
./bin/installto.sh /var/www/roundcube
- Подтвердите обновление и следуйте инструкциям установщика.
Временные меры
Если немедленное обновление невозможно, примените следующие защитные механизмы:
- Отключите отображение HTML-сообщений, принудительно переведя всех пользователей в режим Plain Text (это радикально снизит удобство использования, но устранит вектор атаки).
В конфигурационном файле
config.inc.phpустановите:
$config['prefer_html'] = false;
-
Настройте Content Security Policy (CSP). Добавьте строгие заголовки на уровне веб-сервера (Nginx/Apache), чтобы запретить выполнение встроенных скриптов (inline scripts) и ограничить источники загрузки контента.
-
Используйте WAF (Web Application Firewall). Настройте правила фильтрации для блокировки подозрительных конструкций в теле писем, содержащих теги
<svg>и атрибутыonload,onerrorилиxlink:href.