CVE-2026-24207 — NVIDIA Triton SageMaker auth bypass to unauth RCE. Detection script, bypass demo, RCE-chain PoC, and IDS rules.
未认证攻击者能够通过 SageMaker 和 Vertex AI 的 HTTP 端口访问 NVIDIA Triton 推理服务器的模型管理层,绕过了运维人员的
--http-restricted-api配置。 结合 SageMaker MME LOAD 原语和 Python 后端模型,当攻击者能够将模型文件放置在 Triton 可读的文件系统路径上时,可以实现预认证远程代码执行,以 Triton 进程用户的身份执行。
范围。 PoC 脚本完整复现了 CVE-2026-24207(SageMaker)的利用过程,包括未授权 RCE 利用链,并已针对官方 NVIDIA NGC 容器进行了验证。CVE-2026-24206(Vertex AI)是结构相同的同类漏洞 —— 通过 PR #8680 的源代码/补丁审查确认(
docs/root-cause.md,docs/patch-diff.md),但未在实验室环境中复现。
| 组件 | 受影响版本 | 修复版本 |
|---|---|---|
| NVIDIA Triton 推理服务器 | ≤ 26.02 (v2.66.0) | 26.03 (v2.67.0) |
python3 detect.py <host:sagemaker_port>
发送一个只读 GET 请求。输出 PATCHED、VULNERABLE 或 UNKNOWN。
不会进行任何更改。
python3 bypass_demo.py <host:sagemaker_port>
发送三个探测请求 —— 健康检查(始终成功)、带配置认证头的 /models(授权基线)、以及不带认证头的 /models(绕过方式)。并排显示响应码,展示行为差异。不改变任何状态。参见
docs/root-cause.md。
# 探测模型管理层(枚举 + LOAD 尝试 + UNLOAD 尝试)
python3 exploit.py <host:sagemaker_port>
# 完整 RCE 利用链 —— 将 Triton 指向你控制的文件系统路径
python3 exploit.py <host:sagemaker_port> --mode rce \
--url /opt/ml/models/<你的攻击者目录> \
--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 | 网络入侵检测规则 |
docs/root-cause.md | 根本原因简短说明 |
docs/patch-diff.md | 一份差异文件展示的修复内容 |
docs/rce-chain.md | 通过 Python 后端的未授权 RCE 利用链 |