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-адресам, которые строго необходимы для легитимных интеграций.