MinIO 検証インターフェイスの機密情報漏えいの脆弱性分析 (CVE-2023-28432)

MinIO 検証インターフェイスの機密情報開示の脆弱性

序章

脆弱性の説明: MinIO は、Amazon S3 API と互換性があり、プライベート クラウドまたはパブリック クラウドで使用できるオープン ソースのオブジェクト ストレージ サービスです。MinIO は、大量のデータを格納し、データの高速読み取りおよび書き込み機能を提供できる、高性能で可用性の高い分散ストレージ システムです。MinIO は分散アーキテクチャを採用し、複数のノードで実行して分散ストレージとデータ処理を実現できます。

影響範囲: MinIO 検証インターフェイスに機密情報漏えいの脆弱性があり、攻撃者は特別な URL アドレスを作成して機密システム情報を読み取ることができます。

悪用ペイロード

POST /minio/bootstrap/v1/verify HTTP/1.1

脆弱性検出方法

HTTP リクエスト:

GET /api/v1/check-version

HTTP 応答:

HTTP/1.1 200 OK
Connection: close
Content-Type: application/json
Date: Fri, 24 Mar 2023 06:26:01 GMT
Server: MinIO Console
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Xss-Protection: 1; mode=block
Content-Length: 69

{
    "latest_version": "minio/minio:RELEASE.2023-03-22T06-36-24Z"
}

latest_version の値が <RELEASE.2023-03-20T20-16-18Z の場合、脆弱性があります。

脆弱なコード分析

まず、攻撃負荷によると、ブートストラップが呼び出されていることがわかります。main.go のロード モジュールによると、コード ロジックは minio/cmd にあります。
ここに画像の説明を挿入
次に、アプリケーションのルートを確認したところ、脆弱性のあるファイルがbootstrap-peer-server.goであることがわかりました。
ここに画像の説明を挿入
ファイル内で HTTP リクエストを受け付ける場所を見つける HTTP リクエストを受け付ける方法は、
Line130 と Line132 の 2 つだけです。
ここに画像の説明を挿入
攻撃ペイロードの検証によると、入り口は Line132 にあります。プログラムが入り口で何をするか見てみましょう。
行 133、コードは、HTTP 要求と応答を渡すための新しいコンテキスト オブジェクトを作成します。
135行目、エラーログ出力用。
134行目はサーバーのシステム構成を取得するためのものです。

次に、 getServerSystemCfg() が何をするかを見る必要があります。環境変数は getServerSystemCfg() メソッドで取得されます。ここで envValues は、skipEnvs[envK] の値をトラバーサルで取得します。
ここに画像の説明を挿入
skipEnvs には何が含まれていますか? MINIO_CERT_PASSWD などの機密情報が含まれています
ここに画像の説明を挿入

MINIO_CERT_PASSWD の値は、アカウントのパスワード情報がプレーン テキストで保存されている buildscripts\upgrade-tests\minio.env から取得されます。
ここに画像の説明を挿入
結局、ロジックの認証不足により、不正アクセスの脆弱性が引き起こされます。

おすすめ

転載: blog.csdn.net/qq_35476650/article/details/129748849
おすすめ