CVE-2019-9670

Synacor Zimbra Collaboration Suite (ZCS)

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

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

2022-01-10

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

Synacor Zimbra Collaboration Suite (ZCS) contains an improper restriction of XML external entity (XXE) vulnerability in the mailboxd component.

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

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

Злоумышленник может отправить специально сформированное XML-сообщение (например, через почтовый клиент или API) на сервер Zimbra. Уязвимый компонент mailboxd некорректно обрабатывает внешние XML-сущности (XXE) в этом сообщении. Это позволяет атакующему: * Читать произвольные файлы с файловой системы сервера (например, /etc/passwd, конфигурационные файлы). * Инициировать исходящие сетевые запросы с сервера (SSRF). * В некоторых случаях вызвать отказ в обслуживании (DoS).

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

Установите официальный патч от Synacor, который полностью устраняет уязвимость.

  1. Определите текущую версию ZCS: bash su - zimbra zmcontrol -v
  2. Обновитесь до исправленной версии. Уязвимость устранена в следующих релизах:

    • ZCS 8.8.15 Patch 1 и новее.
    • ZCS 9.0.0 Patch 1 и новее. Скачайте соответствующий патч или полный установочный пакет с официального портала поддержки Synacor: https://www.zimbra.com/downloads/.
  3. Установите обновление в соответствии с официальной инструкцией. Пример для установки патча из командной строки (выполняйте от root): bash # Перейдите в каталог с загруженным патчем cd /tmp # Установите патч (имя файла будет отличаться) rpm -Uvh zimbra-patch-8.8.15_P1*.rpm # или для Ubuntu/Debian dpkg -i zimbra-patch-8.8.15_P1*.deb

  4. Перезапустите Zimbra: bash su - zimbra zmcontrol restart

Временное решение

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

  1. Настройте WAF (Web Application Firewall):

    • Добавьте правило для блокировки HTTP-запросов, содержащих строки <!DOCTYPE, <!ENTITY, SYSTEM или PUBLIC в теле запроса (body) или заголовках.
    • Пример правила для ModSecurity (CRS): SecRule REQUEST_BODY "@rx (?:<!\\[CDATA\\[|<!DOCTYPE|<\\?xml).*?(?:\\]\\]>|\\?>)" "id:1000001,phase:2,deny,msg:'XXE Attack Attempt'"
  2. Ограничьте сетевой доступ:

    • Настройте групповые политики (GPO) или локальные файрволлы, чтобы разрешить входящие соединения к портам Zimbra (например, 443, 7071) только из доверенных сетей (сети сотрудников, VPN).
  3. Внесите изменения в конфигурацию Zimbra (как крайняя мера):

    • Отключите обработку внешних DTD в используемом XML-парсере на уровне JVM. Это требует глубокого знания архитектуры и может нарушить функциональность. Рекомендуется только как временная мера до установки патча.
    • Добавьте следующие свойства JVM для службы mailboxd в файле /opt/zimbra/conf/localconfig.xml (в секцию mailboxd_java_options): -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djavax.xml.stream.XMLInputFactory=com.sun.xml.internal.stream.XMLInputFactoryImpl
    • После изменения перезапустите Zimbra: bash su - zimbra zmcontrol restart

Важно: Временные решения лишь снижают риск и могут быть обойдены. Установка официального патча — обязательное и единственное полное решение.