CVE-2014-3120
Elastic Elasticsearch
2022-03-25
Elasticsearch enables dynamic scripting, which allows remote attackers to execute arbitrary MVEL expressions and Java code.
Технический анализ и план устранения
Суть уязвимости
Уязвимость позволяет удаленному злоумышленнику выполнить произвольный код (Java/MVEL) на сервере Elasticsearch через функцию динамического скриптинга (Dynamic Scripting). Для эксплуатации достаточно отправить специально сформированный HTTP-запрос к API поиска (_search) с вредоносным скриптом в параметрах.
Как исправить
Основное решение — обновить Elasticsearch до версии, в которой динамический скриптинг по умолчанию отключен или строго ограничен.
-
Для Elasticsearch версий 1.2.0 и выше: Уязвимость устранена. Убедитесь, что вы используете актуальную версию. ```bash # Проверьте текущую версию curl -XGET 'http://localhost:9200/'
Пример обновления через apt (Debian/Ubuntu)
sudo apt update sudo apt install elasticsearch
Пример обновления через yum (RHEL/CentOS)
sudo yum update elasticsearch ```
-
Для версий 1.1.x и 1.0.x: Установите патч-релизы:
- 1.1.2 или новее для ветки 1.1.x.
- 1.0.3 или новее для ветки 1.0.x.
Скачайте и установите соответствующий
.debили.rpmпакет с официального сайта.
-
После обновления обязательно перезапустите службу:
bash sudo systemctl restart elasticsearch
Временное решение
Если немедленное обновление невозможно, полностью отключите динамический скриптинг в конфигурации.
-
Отредактируйте конфигурационный файл
elasticsearch.yml:yaml # Добавьте или измените следующие строки: script.disable_dynamic: true -
Перезапустите Elasticsearch для применения изменений:
bash sudo systemctl restart elasticsearch -
Ограничьте сетевой доступ: Настройте межсетевой экран (например,
iptablesилиufw), чтобы разрешить доступ к порту Elasticsearch (по умолчанию 9200/TCP и 9300/TCP) только доверенным IP-адресам или внутренней сети.bash # Пример для iptables (разрешить только от сети 10.0.1.0/24) sudo iptables -A INPUT -p tcp --dport 9200 -s 10.0.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 9200 -j DROP
Важно: Временное решение может нарушить работу приложений, которые полагаются на динамические скрипты. Обновление — единственный надежный способ устранения уязвимости.