CVE-2021-22175
GitLab GitLab
2026-02-18
GitLab contains a server-side request forgery (SSRF) vulnerability when requests to the internal network for webhooks are enabled.
Технический анализ и план устранения
Суть уязвимости
Уязвимость CVE-2021-22175 представляет собой подделку запросов со стороны сервера (SSRF) в GitLab. Она возникает, когда в настройках инстанса разрешены исходящие запросы к локальной сети для веб-хуков и интеграций. Злоумышленник с правами на создание или редактирование веб-хуков может заставить сервер GitLab отправлять произвольные HTTP-запросы во внутреннюю сеть организации. Это позволяет злоумышленнику сканировать внутренние порты, обращаться к закрытым внутренним API, обходить межсетевые экраны и извлекать чувствительные данные (например, токены доступа из эндпоинтов метаданных облачных провайдеров, таких как 169.254.169.254).
Как исправить
Единственным гарантированным способом устранения уязвимости является обновление GitLab до безопасной версии. Уязвимость была закрыта в релизах 13.8.5, 13.9.4, 13.10.1 и во всех последующих версиях.
Для обновления GitLab (на примере систем Debian/Ubuntu) выполните следующие шаги:
Обновите индекс пакетов:
apt-get update
Запустите установку актуальной версии GitLab Enterprise Edition (если вы используете Community Edition, замените пакет на gitlab-ce):
apt-get install gitlab-ee
Запустите процесс переконфигурации для применения новых настроек:
gitlab-ctl reconfigure
Перезапустите службы GitLab для применения обновления:
gitlab-ctl restart
Временные меры
Если оперативное обновление системы в данный момент невозможно, необходимо отключить уязвимый функционал через настройки администратора.
Отключение через веб-интерфейс GitLab: 1. Авторизуйтесь в GitLab под учетной записью с правами администратора. 2. Перейдите в раздел Admin Area (Область администратора). 3. В левом навигационном меню выберите Settings -> Network (Настройки -> Сеть). 4. Найдите и разверните секцию Outbound requests (Исходящие запросы). 5. Снимите флажок с параметра Allow requests to the local network from web hooks and services (Разрешить запросы к локальной сети от веб-хуков и сервисов). 6. Нажмите кнопку Save changes (Сохранить изменения).
Дополнительные сетевые ограничения: 1. Настройте правила межсетевого экрана (iptables/ufw/firewalld) на самом сервере GitLab. 2. Заблокируйте исходящий трафик от пользователя, под которым работает GitLab, к приватным диапазонам IP-адресов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) и адресам облачных метаданных (169.254.169.254). 3. Разрешите доступ только к тем внутренним IP-адресам, которые строго необходимы для легитимных интеграций.