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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/abraxas/prometheus-bearer-redirect
脆弱性分析エクスプロイトセキュリティ仮想化ウェブセキュリティラボと実践
GitHubabraxas/prometheus-bearer-redirect

prometheus-bearer-redirect

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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - prometheus-bearer-redirect

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

解説記事: https://abraxaslabs.tech/research/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、oracle 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

修正

isCrossHostRedirect(req) の場合、Azure AD / Google IAM Bearer の付与をスキップします。これは common #901 と同様です。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 を参照してください。ループバックラボ専用です。保証はありません。

ツールをダウンロード