CVE-2024-27348

Apache HugeGraph-Server

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

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

2024-09-18

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

Apache HugeGraph-Server contains an improper access control vulnerability that could allow a remote attacker to execute arbitrary code.

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

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

CVE-2024-27348 представляет собой критическую уязвимость в Apache HugeGraph-Server, связанную с недостаточным контролем доступа (Improper Access Control). Проблема кроется в компоненте Gremlin, который позволяет выполнять произвольный код (RCE) через обход ограничений песочницы (sandbox).

Злоумышленник может отправить специально сформированный POST-запрос к API сервера, содержащий вредоносный скрипт на языке Gremlin. Из-за некорректной фильтрации и использования небезопасных механизмов десериализации/вызова функций, атакующий получает возможность выполнять системные команды в контексте пользователя, от которого запущен процесс HugeGraph.

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

Основным и наиболее надежным способом устранения уязвимости является обновление Apache HugeGraph-Server до версии 1.3.0 или выше, в которой механизмы аутентификации и фильтрации Gremlin-запросов были переработаны.

  1. Скачайте актуальную версию дистрибутива с официального сайта Apache.
  2. Остановите текущую службу HugeGraph:
./bin/stop-hugegraph.sh

  1. Создайте резервную копию конфигурационных файлов и данных.
  2. Разверните новую версию сервера (1.3.0+) и перенесите конфигурации.
  3. Запустите обновленный сервер:
./bin/start-hugegraph.sh

Временные меры

Если немедленное обновление невозможно, необходимо ограничить векторы атаки путем изменения конфигурации и сетевого окружения.

  1. Включите обязательную аутентификацию в файле rest-server.properties:
auth.authenticator=org.apache.hugegraph.auth.StandardAuthenticator

  1. Настройте белый список разрешенных IP-адресов на уровне межсетевого экрана (Firewall), чтобы доступ к портам 8080 (REST API) и 8182 (Gremlin Server) имели только доверенные узлы:
iptables -A INPUT -p tcp --dport 8080 -s <TRUSTED_IP> -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j DROP

  1. Отключите возможность выполнения произвольных Gremlin-скриптов, если это не требуется для работы вашего приложения, изменив настройки в gremlin-server.yaml, установив строгие ограничения на используемые скрипты и классы.

  2. Запустите процесс HugeGraph от имени пользователя с минимальными привилегиями в системе (Non-root user), чтобы ограничить ущерб в случае успешной эксплуатации.