
Dockerベースの概念実証で、NVIDIA Triton推論サーバーにおけるCVE-2025-23320を実証し、共有メモリキーの漏洩を悪用して、登録解除/登録の競合状態を介して領域外書き込みを引き起こします。
CVE-2025-23320の実証
このリポジトリはCVE-2025-23320を再現し、CWE-209(機密情報を含むエラーメッセージの生成)を実証します(CVSSスコア: 7.5)。この脆弱性は、NVIDIA Triton推論サーバー25.06以前のすべてのバージョンに存在します。
このDockerセットアップは、NVIDIA Triton推論サーバーと攻撃クライアントを含むネットワークを実行します。この環境はクライアントがLinux上で実行されることも保証するため、CVEはすべてのオペレーティングシステムで再現可能です。
ビルド/実行方法
docker compose --build-no-cache
初回実行時は、GitHubからNVIDIA Tritonサーバーバージョン25.06のイメージをプルするため、時間がかかる場合があります。
次に:
docker compose up
POC
攻撃クライアントスクリプトは自動的に実行され、次の形式のエラーメッセージを出力します: Failed to increase the shared memory pool size for key 'triton_python_backend_shm_region_8a463f1a-fcd6-4c1b-b4b5-df63f9c512ad' to 54525952 bytes.
このキーを取得した後、攻撃者はさまざまな操作を実行できます。私たちのコード実装では、攻撃者はTritonのunregister APIを利用しました。TritonはこのAPIを誰が呼び出しているかを検証しないため、関数は実行されます。攻撃者がその後register関数を使用し、レースコンディションのトリガーに成功すると、境界外(OOB)書き込みが発生します。