Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
grafana-gitsync-dns-rebind — Grafana OSS 13.2.3 — высокий — удалённый — SSRF — Git Sync URLValidator выполняет проверку DNS только при допуске | Kitploit
Инструменты/GitHubGitHub/abraxas/grafana-gitsync-dns-rebind
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingЛаборатории и Практика
GitHubabraxas/grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

Grafana OSS 13.2.3 — высокий — удалённый — SSRF — Git Sync URLValidator выполняет проверку DNS только при допуске

Репозиторий
3 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Abraxas Labs - grafana-gitsync-dns-rebind

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

Класс: SSRF Достижимость: Удалённая

Grafana OSS 13.2.3 (6193dc0) - Grafana Labs

Git Sync URLValidator проверяет хост URL репозитория при приёме. nanogit / Test выполняют повторное разрешение позже без фиксации IP. isBlockedIP охватывает только loopback, RFC1918, link-local и unspecified. Литерал 0.0.0.1 не блокируется. Имя хоста, являющееся публичным на момент валидации, может быть перепривязано к RFC1918 для GET при клонировании.

Проверка Org Admin перепривязывающегося Git URL заставляет Grafana выполнить GET внутреннего хоста, который валидатор был написан отклонять.

IDCVE пока нет
КлассSSRF (DNS rebind / пробел 0.0.0.0/8)
ДостижимостьУдалённая (Org Admin repositories:create)
CWECWE-918 / CWE-367
CVSSHigh: 7.7 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N
ПродуктGrafana OSS
Затронуто13.2.3 (6193dc0); Git Sync включён по умолчанию
АутентификацияOrg Admin (repositories:create / :write). Не создание Viewer/Editor.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Действующее лицо — Org Admin, а не посторонний. Org Admin и так может направить datasources на внутренние URL в OSS. Этот остаток — обход URLValidator Git Sync, который должен был закрыть этот класс для URL репозиториев.

ПривилегияМетод / sinkРазведка / целостность / доступностьДоказано в лаборатории или выведено
Заставить Grafana выполнить GET перепривязывающегося Git URLOrg Admin POST .../repositories/{name}/test с spec.git.url=http://git.lab/...Разведка (исходящий HTTP из процесса Grafana)Доказано в лаборатории. DNS A1 публичный, позже A RFC1918. Оракул перепривязки hits=3, свидетель в теле
Достичь литерального 0.0.0.1 Git URLТот же Test с http://0.0.0.1:18080/lab/gitsync.gitРазведкаДоказано в лаборатории, не блокируется при приёме (статус 400 transport, а не 422 public-or-allowed)
Прочитать Git Smart HTTP / HTTP тело с этого хоста в ошибки TestgitRepository.Test интерполирует ошибку транспортаРазведкаВыведено из фиксации. В лаборатории использовалась 200 git advertisement
Перепривязка к RFC1918 / CGNAT после приёмаTOCTOU: валидация DNS, затем dial nanogitРазведкаДоказано в лаборатории для RFC1918 sidecar 172.30.60.3
Чтение Viewer сохранённого spec.*.url, включая userinforepositories:readРазведкаВыведено из фиксации. Не эта лаборатория

Закрыто на этом остатке (доказано в лаборатории): литеральный loopback 127.0.0.1 422; литеральный RFC1918 10.0.0.1 422; IMDS 169.254.169.254 422. Закрыто: Editor не может создавать репозитории. Не RCE. Grafana Admin не требуется. Пропуск Grafana G2 (IAM SSOSetting k8s authorizer).

Как я это нашёл

Приём в apps/provisioning/pkg/repository/validator.go вызывает URLValidator.ValidateURL. isBlockedIP — это четыре предиката. Unspecified — только 0.0.0.0 / ::. Остаток 0.0.0.0/8 и CGNAT проходят. Клонирование позже использует nanogit.NewHTTPClient(gitConfig.URL) и выполняет повторное разрешение.

Уже зафиксированные ложные пути: трактовка Org Admin DS URL как этого остатка (они предназначены; это обход валидатора Git Sync); ожидание, что IMDS 169.254 пройдёт (блокируется при приёме); создание Editor (отказано); reverse shell. Театр.

Лаборатория

python3 grafana-gitsync-dns-rebind-Abraxas-Labs.py

или:

cd lab
./run.sh

Loopback: Grafana 127.0.0.1:19360, управление DNS 127.0.0.1:19361, оракул перепривязки 127.0.0.1:19362. Образ grafana/grafana:13.2.3.

SUCCESS GRAFANA-GITSYNC-DNS-REBIND how=live actor=org-admin path=rebind dns_lookups=4 negatives=3 GRAFANA-GITSYNC-DNS-REBIND-WITNESS

Исправление

Зафиксируйте разрешённый адрес на протяжении clone/Test или повторно валидируйте при каждом dial. Считайте 0.0.0.0/8 и CGNAT заблокированными. Не пропускайте DNS на хостах из allowlist без фиксации.

Ссылки

  • github.com/grafana/grafana тег v13.2.3
  • url_validator.go · validator.go
  • CWE-918 · CWE-367

Лицензия

GNU Affero GPL v3.0. См. LICENSE. Только loopback-лаборатория. Без гарантий.

Скачать инструмент