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-запросов были переработаны.
- Скачайте актуальную версию дистрибутива с официального сайта Apache.
- Остановите текущую службу HugeGraph:
./bin/stop-hugegraph.sh
- Создайте резервную копию конфигурационных файлов и данных.
- Разверните новую версию сервера (1.3.0+) и перенесите конфигурации.
- Запустите обновленный сервер:
./bin/start-hugegraph.sh
Временные меры
Если немедленное обновление невозможно, необходимо ограничить векторы атаки путем изменения конфигурации и сетевого окружения.
- Включите обязательную аутентификацию в файле
rest-server.properties:
auth.authenticator=org.apache.hugegraph.auth.StandardAuthenticator
- Настройте белый список разрешенных 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
-
Отключите возможность выполнения произвольных Gremlin-скриптов, если это не требуется для работы вашего приложения, изменив настройки в
gremlin-server.yaml, установив строгие ограничения на используемые скрипты и классы. -
Запустите процесс HugeGraph от имени пользователя с минимальными привилегиями в системе (Non-root user), чтобы ограничить ущерб в случае успешной эксплуатации.