CVE-2024-42009

Roundcube Webmail

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2025-06-09

Официальное описание

RoundCube Webmail contains a cross-site scripting vulnerability. This vulnerability could allow a remote attacker to steal and send emails of a victim via a crafted e-mail message that abuses a Desanitization issue in message_body() in program/actions/mail/show.php.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2024-42009 представляет собой критическую уязвимость типа Stored XSS (хранимый межсайтовый скриптинг), возникающую из-за недостаточной очистки (desanitization) содержимого писем в функции message_body() файла program/actions/mail/show.php.

Злоумышленник может отправить специально сформированное электронное письмо, содержащее вредоносный JavaScript-код. При просмотре такого письма жертвой в интерфейсе Roundcube, код исполняется в контексте сессии пользователя. Это позволяет атакующему: * Получить полный доступ к почтовому ящику жертвы. * Незаметно отправлять письма от имени пользователя. * Похищать конфиденциальные данные и токены аутентификации.

Как исправить

Основным и наиболее надежным способом устранения уязвимости является обновление Roundcube Webmail до версий, в которых ошибка была исправлена разработчиками (1.6.8 или 1.5.8).

Шаг 1: Проверка текущей версии Перейдите в корневую директорию Roundcube и проверьте версию в файле composer.json или через интерфейс.

Шаг 2: Резервное копирование Перед обновлением обязательно создайте бэкап базы данных и файлов приложения.

Шаг 3: Обновление через скрипт installto.sh Скачайте новую версию с официального сайта или GitHub и запустите скрипт обновления, указав путь к текущей установке:

./bin/installto.sh /var/www/roundcube

Шаг 4: Обновление через Composer (если используется) Если Roundcube установлен как зависимость Composer:

composer update roundcubemail/roundcubemail --no-dev

Временные меры

Если немедленное обновление системы невозможно, рекомендуется применить следующие защитные механизмы:

1. Ручной патч кода Если вы не можете обновить версию целиком, внесите изменения в файл program/lib/Roundcube/rcube_washtml.php (или соответствующий файл обработки HTML в вашей версии), чтобы усилить фильтрацию атрибутов и тегов, которые могут быть использованы для обхода очистки. Сверьтесь с официальным коммитом исправления в репозитории Roundcube.

2. Настройка Content Security Policy (CSP) Добавьте строгие заголовки CSP в конфигурацию веб-сервера (Nginx или Apache), чтобы запретить выполнение встроенных скриптов (inline scripts) и ограничить источники загрузки контента:

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none';";

3. Отключение отображения HTML-писем В качестве экстренной меры можно проинструктировать пользователей переключить режим отображения писем на "Plain Text" (Простой текст) в настройках интерфейса: Настройки -> Отображение сообщений -> Показывать в HTML (снять галочку).