Positive Technologies
PT Expert Security Center

Фальшивый аттач. Атаки на почтовые серверы Roundcube с использованием уязвимости CVE-2024-37383.

Фальшивый аттач. Атаки на почтовые серверы Roundcube с использованием уязвимости CVE-2024-37383.

Автор:

Максим Андреев

Максим Андреев

Руководитель группы исследования сложных угроз TI-департамента экспертного центра безопасности компании Positive Technologies

Максим Суслов

Максим Суслов

Специалист группы анализа уязвимостей отдела безопасности сетевых приложений экспертного центра безопасности компании Positive Technologies

Введение

Roundcube Webmail — клиент для электронной почты с открытым исходным кодом, написанный на PHP. Обширный функционал, а также возможность удобного доступа к почтовым аккаунтам из браузера без необходимости установки полноценных почтовых клиентов обусловила его популярность в том числе среди коммерческих и государственных организаций многих стран. Широкое использование делает его привлекательной целью для злоумышленников, которые адаптируют эксплойты через достаточно короткое время, после появления сведений о них в открытом доступе. 

Пример одной из подобных атак мы хотим привести в этой статье.

О письме

В сентябре 2024 года специалистами TI-департамента экспертного центра безопасности Positive Technologies (PT ESC) было обнаружено письмо, направленное на электронную почту одного из государственных органов стран СНГ. Временные метки говорят о том, что оно было отправлено еще в июне 2024 года. Внешне письмо представляло собой сообщение без текста и содержало вложенный документ.

При этом почтовый клиент не отображал наличие вложения. В теле письма есть характерные теги, содержащие конструкцию eval(atob(...)), декодирующие и выполняющие код на JavaScript:

Характерное имя атрибута (attributeName="href "), содержащее дополнительный пробел, говорит о том, что это письмо представляет собой попытку эксплуатации уязвимости CVE-2024-37383 в почтовом клиенте Roundcube Webmail.

Об уязвимости

Уязвимость CVE-2024-37383 была обнаружена в веб-клиенте для работы с электронной почтой Roundсube Webmail. Уязвимость относится к типу хранимых XSS (stored XSS), позволяя выполнить JavaScript-код атакующего в контексте страницы пользователя. Для этого достаточно открыть вредоносное письмо клиентом Roundcube версии до 1.5.6 либо версии от 1.6 до 1.6.6 Уязвимость была обнаружена исследователями CrowdStrike и устранена коммитом от 19 мая 2024 года.

Ошибка заключается в коде, выполняющем обработку SVG-элементов в разметке тела письма. Перед тем как отобразить письмо, Roundcube производит его препроцессинг — обрабатывает содержимое определенных тегов и их атрибутов (например, экранирует специальные символы). Среди прочего на этой стадии из итогового тела письма исключаются элементы SVG, которые имеют атрибуты "<animate>", со ссылкой на элемент:

Их содержимое заменяется на пустые элементы SVG:

Функция, осуществляющая препроцессинг HTML-элементов в теле письма, выглядит следующим образом:

Для того чтобы теги <animate>, <animatecolor>, <set>, <animatetransform> исключались из итоговой страницы при условии, в них дополнительно должен содержаться атрибут "href":

Наличие этого атрибута проверяется вызовом функции attribute_value($node, 'attributename', 'href'), код которого выглядит следующим образом:

При сравнении не учитывается, что имя атрибута тега, полученное при парсинге документа, может содержать пробелы. Таким образом, при добавлении к имени атрибута "href" лишнего пробела, конструкция вида

не будет отфильтрована и попадет в итоговый документ. Перед этим она будет приведена к виду {имя атрибута} = {значение атрибута}:

Если подставить в качестве значения href JavaScript-код, получаем возможность его выполнения в контексте страницы Roundcube при открытии вредоносного письма клиентом Roundcube. PoC, опубликованный для уязвимости, выглядит следующим образом:

О полезной нагрузке

Код, который выполняется в функции eval, сохраняет пустой документ Road map.docx (закодирован в скрипте в Base64). Помимо этого, предпринимается попытка получить сообщения из почтового сервера с помощью плагина ManageSieve. Выдержка из запроса приведена ниже:

Дополнительно в HTML-страницу, отображаемую пользователю, добавляется форма авторизации с полями rcmloginuser и rcmloginpwd — логином и паролем пользователя для клиента Roundcube. Расчет здесь, предположительно, делается на возможность автозаполнения указанных полей либо на то, что пользователь самостоятельно введет указанные данные из-за необходимости якобы повторной авторизации.

Полученные таким образом логин и пароль отправляются на сервер libcdn.org:

Сам домен libcdn.org был зарегистрирован 6 июня 2024 года и резолвится на инфраструктуру Cloudflare.

Выводы

Уязвимости Roundcube Webmail неоднократно становились инструментом в руках злоумышленников. Последней из таких атак была кампания, относящаяся к кластеру активности группировки Winter Vivern, которая через уязвимость XSS в Roudcube атаковала государственные организации ряда европейских стран. При этом, исходя из имеющихся сведений, выявленную активность не удалось связать напрямую с известными акторами.

Несмотря на то что клиент Roundcube Webmail является не самым популярным почтовым клиентом, атаки на него могут нанести значительный ущерб в виде хищения конфиденциальной информации, поскольку это ПО довольно часто используется государственными органами.

Изложенное в очередной раз подчеркивает необходимость своевременного обновления ПО, используемого для взаимодействия с внешней недоверенной средой.

Сетевые индикаторы

ИндикаторНазначение
libcdn.orgОтправка реквизитов доступа к учетной записи почтового сервера
rcm.codesОтправка содержимого почтового ящика

Матрица MITRE

IDИмяОписание
Execution
T059.007JavaScriptЗлоумышленники используют JavaScript-код для выполнения полезной нагрузки в контексте сессии почтового клиента в браузере жертвы
Collection
T1114.003Remote email collectionЗлоумышленники собирают содержимое почтового ящика жертвы с помощью плагина ManageSieve
T1056.004Web portal captureЗлоумышленники вставляют поля ввода логина и пароля в веб-страницу письма и отправляют введенные данные на удаленный сервер