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 до версии, в которой уязвимость устранена.
-
Определите текущую версию Solr:
bash curl http://localhost:8983/solr/admin/info/system?wt=json | grep "solr-spec-version" -
Обновите 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.
-
Отключите
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"/> -
Перезагрузите ядро Solr после внесения изменений через панель администратора (
Admin UI -> Core Admin -> Reload) или API. -
Ограничьте сетевой доступ к порту 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