
CVE-2026-24207 — NVIDIA Triton SageMakerの認証バイパスによる未認証RCE。検出スクリプト、バイパスデモ、RCEチェーンPoC、IDSルール。
認証されていない攻撃者は、NVIDIA Triton Inference ServerのSageMakerおよびVertex AI HTTPポート上の モデル管理サーフェスに到達できます — オペレーターの
--http-restricted-api設定をバイパスします。 SageMaker MME LOADプリミティブとPythonバックエンドモデルを組み合わせることで、 攻撃者がTritonが読み取り可能なファイルシステムパスにモデルファイルを配置できる場合、 Tritonプロセスユーザーとしての認証前リモートコード実行が可能になります。
対象範囲. PoCスクリプトは、未認証RCEチェーンを含む CVE-2026-24207(SageMaker)を エンドツーエンドで再現し、公式のNVIDIA NGCコンテナに対して検証済みです。 CVE-2026-24206(Vertex AI)は構造的に同一の兄弟バグであり — PR #8680の ソース/パッチレビュー(
docs/root-cause.md、docs/patch-diff.md) によって確認済みですが、ラボでの再現は行っていません。
| コンポーネント | 脆弱なバージョン | 修正済みバージョン |
|---|---|---|
| NVIDIA Triton Inference Server | ≤ 26.02 (v2.66.0) | 26.03 (v2.67.0) |
python3 detect.py <host:sagemaker_port>
読み取り専用のGETを1回送信します。PATCHED、VULNERABLE、またはUNKNOWNを出力します。
変更は行いません。
python3 bypass_demo.py <host:sagemaker_port>
3つのプローブを送信します — ヘルスチェック(常に成功)、設定済み認証ヘッダー付きの/models(認可済みベースライン)、およびヘッダーなしの/models(バイパス)。レスポンスコードを並べて表示することで、動作の違いを示します。状態の変更はありません。docs/root-cause.md を参照してください。
# Probe the model-management surface (enumerate + LOAD attempt + UNLOAD attempt)
python3 exploit.py <host:sagemaker_port>
# Full RCE chain — point Triton at a path you control on its filesystem
python3 exploit.py <host:sagemaker_port> --mode rce \
--url /opt/ml/models/<your-attacker-dir> \
--name chaindemo
--mode rce フローは、ユーザー指定のパスからPythonバックエンドモデルを読み込みます。ディレクトリに有効な config.pbtxt + model.py が含まれている場合(良性のデモについては example/ を参照)、model.py はTritonプロセスユーザーとして — 認証前に — 実行されます。
チェーンの仕組みと前提条件については docs/rce-chain.md を参照してください。
Python 3.8+ と requests:
pip install requests
4252nez による独立したパッチ適用後の分析とPoC — 技術解説は OffSecKit に掲載。 元の脆弱性は Hyeonjun Ahn(@deayzl)によって報告され、 NVIDIAの2026年5月のセキュリティ速報でクレジットされています。このリポジトリは 当該レポートとは一切関係ありません。
MIT — LICENSE を参照してください。
| ファイル | 説明 |
|---|
detect.py | 非破壊のパッチ状態チェック |
bypass_demo.py | バイパスの仕組みを並べて示す教育用デモ |
exploit.py | モデル管理プローブ + RCEチェーンのデモ |
example/ | RCEデモ用の良性のPythonバックエンドモデル |
detection/triton-access.md | 検知ガイダンス(バージョンフィンガープリント + ログシグネチャ) |
detection/suricata.rules | ネットワークIDSルール |
docs/root-cause.md | 根本原因の簡潔な解説 |
docs/patch-diff.md | 修正内容を1つのdiffで示す |
docs/rce-chain.md | Pythonバックエンド経由の未認証RCEチェーン |