Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
grafana-gitsync-dns-rebind — Grafana OSS 13.2.3 - High - Remote - SSRF - Git Sync URLValidator はアドミッション専用 DNS | Kitploit
ツール/GitHubGitHub/abraxas/grafana-gitsync-dns-rebind
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミングラボと実践
GitHubabraxas/grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

Grafana OSS 13.2.3 - High - Remote - 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 はループバック、RFC1918、リンクローカル、および unspecified のみである。リテラルの 0.0.0.1 はブロックされない。検証時にパブリックだったホスト名は、クローン GET のために RFC1918 にリバインドできる。

Org Admin がリバインドする Git URL を Test すると、Grafana はバリデータが拒否するよう書かれていた内部ホストに GET を実行する。

IDCVE 未採番
クラスSSRF (DNS リバインド / 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 の create ではない。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

アクターは Org Admin であり、部外者ではない。Org Admin は OSS 上で既にデータソースを内部 URL に向けることができる。この残存問題は、リポジトリ URL に対してそのクラスを塞ぐことを目的としていた Git Sync URLValidator のバイパスである。

権限メソッド / シンク偵察 / 完全性 / 可用性ラボ実証または推測
Grafana にリバインドする Git URL を GET させるOrg Admin POST .../repositories/{name}/test と spec.git.url=http://git.lab/...偵察 (Grafana プロセスからの外向き HTTP)ラボ実証。DNS A1 はパブリック、後に A は RFC1918。リバインドオラクル hits=3、body に witness
リテラルの 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 body を Test エラーに読み込むgitRepository.Test が transport エラーを補間偵察ピンから推測。ラボでは 200 の git advertisement を使用
受け入れ後に RFC1918 / CGNAT にリバインドTOCTOU: DNS を検証してから nanogit がダイヤル偵察RFC1918 サイドカー 172.30.60.3 でラボ実証
保存された spec.*.url (userinfo を含む) を Viewer が読み取るrepositories:read偵察ピンから推測。このラボではない

この残存問題で塞がれているもの (ラボ実証): リテラルのループバック 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 は 4 つの述語である。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 の create (拒否される); リバースシェル。茶番である。

ラボ

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

または:

cd lab
./run.sh

ループバック: 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

修正

クローン/Test を通じて解決済みアドレスを固定するか、ダイヤルごとに再検証する。0.0.0.0/8 と CGNAT をブロック対象として扱う。固定せずに許可リスト済みホストで DNS をスキップしない。

参考資料

  • github.com/grafana/grafana タグ v13.2.3
  • url_validator.go · validator.go
  • CWE-918 · CWE-367

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード