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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
prometheus-bearer-redirect — Prometheus v3.15.0 - 高 - リモート - 認証情報漏洩 - remote_write google_iam/azuread がクロスホスト 3xx で Bearer を転送 | Kitploit
ツール/GitHubGitHub/abraxas/prometheus-bearer-redirect
脆弱性分析エクスプロイトセキュリティ仮想化ウェブセキュリティラボと実践
GitHubabraxas/prometheus-bearer-redirect

prometheus-bearer-redirect

Prometheus v3.15.0 - 高 - リモート - 認証情報漏洩 - remote_write google_iam/azuread がクロスホスト 3xx で Bearer を転送

リポジトリを見る
64日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - prometheus-bearer-redirect

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  prometheus-bearer-redirect

prometheus-bearer-redirect

クラス: 認証情報漏洩 到達範囲: リモート

Prometheus v3.15.0 (5241a27) - CNCF / Prometheus

prometheus/common v0.71.0 は、クロスホストリダイレクト時に scrape / HTTPClientConfig の認証情報をすでに除去しています (isCrossHostRedirect、#901)。NewWriteClient はまずそのクライアントを構築し、その後、除去の外側で azuread.NewAzureADRoundTripper または googleiam.NewRoundTripper をラップします。follow_redirects は依然としてデフォルトで true です。

設定された remote_write URL が別のホストへ 301/302/307 リダイレクトする場合、Prometheus は Authorization: Bearer と Azure AD または GCP の monitoring.write トークンをそのホストへ送信します。 Go はすでにコピーされたヘッダーを破棄しています。これらの RoundTripper がそれを再設定します。

CVE-2026-42151 (/-/config での client_secret ダンプ) ではありません。デフォルトの prometheus.yml には remote_write がありません。これは azuread: または google_iam: によって制御されます。

IDCVE 未割当
クラス認証情報漏洩 (クロスホスト 3xx 時の remote_write Bearer)
到達範囲リモート (Prometheus から 3xx ターゲットへのアウトバウンド)
CWECWE-201
CVSSHigh: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
製品Prometheus
影響を受けるバージョンv3.15.0 (5241a27fe3c6983549fccc32f6e65917408c63cd)、イメージ prom/prometheus:v3.15.0
認証設定で制御される remote_write と azuread: または google_iam:
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

オペレーターが azuread: または google_iam: を伴う remote_write を設定しています。RW URL、またはそれが 3xx リダイレクトするホップが、攻撃者が制御するホストです。

権限メソッド / シンクラボ実証済みまたは推測
クロスホスト 3xx で実際の GCP monitoring.write Bearer を読み取るgoogle_iam remote_write POST、別ホストへの 307ラボ実証済み。オラクルの POST /write が Authorization: Bearer lab-gcp-PROMETHEUS-BEARER-REDIRECT-WITNESS を受信
azuread でも同様の漏洩azureADRoundTripper.RoundTrip は常に Header.Set("Authorization", "Bearer "+token) を実行し、isCrossHostRedirect がないピン留めしたソースから推測。NewWriteClient 内の同じラップ箇所。ラボは google_iam を使用したため Azure は呼び出していない
そのトークンをその ID として Azure Monitor / GCP Monitoring に対してリプレイするこれらの認証ブロックが設定されている場合、トークンは実際のクラウド認証情報推測。ラボはスタブトークンを発行しただけで、Azure や GCP は呼び出していない
同じピン留めでの scrape / oauth2 / basic / bearercommon v0.71.0 の HTTPClientConfig RoundTripperラボでクローズを実証済み。oauth2 scrape GET は同じオラクルへ 302 を追跡し、Authorization はなかった
デフォルト OSSremote_write は空クローズ
remote_write.headers で Authorization を設定拒否クローズ
/-/config が client_secret をダンプCVE-2026-42151。このピン留めではフィールドは Secret 型クローズ
Prometheus 管理 / ライフサイクルフラグはデフォルトでオフクローズ
RCE / シェルこの残存物ではないクローズ

発見の経緯

3.11/3.12 のシークレット秘匿化と snappy キャップの波の後、prometheus/prometheus タグ v3.15.0 をピン留めしました。19 回の調査。デフォルト OSS: admin API、ライフサイクル HTTP、remote-write レシーバー、OTLP レシーバーはオフ。common #901 は v0.71.0 に含まれています。残存物は、そのクライアントの外側に位置する 2 つの remote_write ラッパーです。

func (rt *azureADRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
	accessToken, err := rt.tokenProvider.getAccessToken(req.Context())
	// ...
	req.Header.Set("Authorization", bearerAccessToken)
	return rt.next.RoundTrip(req)
}

googleiam.NewRoundTripper は google.golang.org/api/transport/http -> oauth2.Transport であり、これはすべてのホップで SetAuthHeader を実行します。

すでに記録済みの誤った方向: CVE-2026-42151 の再申請、scrape oauth2 を依然として漏洩しているとみなすこと (そうではない)、これをデフォルトインストールの High と呼ぶこと (そうではない - remote_write は有効にするまで空)。茶番: リバースシェル。オラクルはリダイレクトされた POST 上の Bearer です。

ラボ

python3 prometheus-bearer-redirect-Abraxas-Labs.py

または

cd lab
./run.sh

ループバックのみ: Prometheus http://127.0.0.1:19380、オラクル http://127.0.0.1:19381。イメージ prom/prometheus:v3.15.0。run.sh は token_uri: http://hop:8080/token を持つラボ用 gcp-sa.json を書き出すため、google_iam が Google と通信することはありません。

SUCCESS prometheus-bearer-redirect how=live rw-method=POST rw-bearer=yes token-has-witness=yes scrape-method=GET scrape-bearer=no PROMETHEUS-BEARER-REDIRECT-WITNESS

修正

common #901 と同様に、isCrossHostRedirect(req) の場合に Azure AD / Google IAM Bearer の付与をスキップしてください。Go がクロスホスト 3xx で破棄した後に Authorization を再設定しないでください。

参考資料

  • github.com/prometheus/prometheus タグ v3.15.0 (5241a27fe3c6983549fccc32f6e65917408c63cd)
  • storage/remote/client.go · storage/remote/azuread/azuread.go · storage/remote/googleiam/googleiam.go
  • prometheus/common #901
  • 近傍でパッチ済み (このラップではない): CVE-2026-42151
  • CWE-201

ライセンス

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

ツールをダウンロード