CVE-2019-17558

Apache Solr

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

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

2021-11-03

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

The Apache Solr VelocityResponseWriter plug-in contains an unspecified vulnerability which can allow for remote code execution.

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

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

Уязвимость в модуле VelocityResponseWriter Apache Solr позволяет удаленному злоумышленнику выполнить произвольный код на сервере. Для эксплуатации атакующий отправляет специально сформированный HTTP-запрос к уязвимому экземпляру Solr, который использует этот модуль для рендеринга ответов. Это приводит к выполнению команд с правами пользователя, под которым работает процесс Solr.

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

Обновите Apache Solr до версии, в которой уязвимость устранена.

  1. Определите текущую версию Solr: bash curl http://localhost:8983/solr/admin/info/system?wt=json | grep "solr-spec-version"

  2. Обновите Solr до одной из безопасных версий:

    • Apache Solr 8.3.1 или новее (ветка 8.3.x)
    • Apache Solr 8.2.1 или новее (ветка 8.2.x)
    • Apache Solr 7.7.3 или новее (ветка 7.7.x)

    Пример для Linux (обновление вручную): * Остановите текущий экземпляр Solr. * Скачайте и распакуйте архив с безопасной версией с официального сайта. * Перенесите свои конфигурации (solr_home/) и данные (solr_home/data/) в новую установку. * Запустите обновленный экземпляр.

    Если Solr установлен через пакетный менеджер (например, apt), обновите пакет: bash sudo apt update sudo apt install solr Убедитесь, что в репозиториях доступна версия 8.3.1, 8.2.1, 7.7.3 или выше.

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

Если немедленное обновление невозможно, отключите уязвимый модуль VelocityResponseWriter.

  1. Отключите VelocityResponseWriter в конфигурации solrconfig.xml для каждого ядра (core/collection). Найдите в файле solrconfig.xml блок, похожий на: xml <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="${solr.velocity.enable:true}"/> Измените его, установив параметр enable в false: xml <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" enable="false"/>

  2. Перезагрузите ядро Solr после внесения изменений через панель администратора (Admin UI -> Core Admin -> Reload) или API.

  3. Ограничьте сетевой доступ к порту Solr (по умолчанию 8983) с помощью брандмауэра, разрешив подключения только доверенным IP-адресам (например, адресам веб-приложений). bash # Пример для UFW (Ubuntu/Debian). Разрешить только IP 192.168.1.100 sudo ufw allow from 192.168.1.100 to any port 8983 sudo ufw deny 8983