NVIDIA Triton Inference Server SageMaker Auth Bypass to Unauthenticated RCE (CVE-2026-24207)
by 4252nez (offseckit.com); original vulnerability reported by Hyeonjun Ahn (@deayzl) · 2026-07-05
- Severity
- Critical
- CVE
- CVE-2026-24207 (sibling: CVE-2026-24206, Vertex AI, analysis only)
- Category
- network
- Affected product
- NVIDIA Triton Inference Server
- Affected versions
- <= 26.02 (v2.66.0); fixed in 26.03 (v2.67.0)
- Disclosed
- 2026-07-05
- Patch status
- patched
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-06 |
| Author / Researcher | 4252nez (offseckit.com); original vulnerability reported by Hyeonjun Ahn (@deayzl) |
| CVE / Advisory | CVE-2026-24207 (sibling: CVE-2026-24206, Vertex AI, analysis only) |
| Category | network |
| Severity | Critical |
| CVSS Score | 9.8 (NVIDIA CNA); not yet scored by NIST/NVD |
| Status | Weaponized |
| Tags | nvidia-triton, sagemaker, auth-bypass, rce, cwe-288, ml-inference, model-loading, pre-auth |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | NVIDIA Triton Inference Server |
| Versions Affected | <= 26.02 (v2.66.0); fixed in 26.03 (v2.67.0) |
| Language / Platform | C++/Python Triton server; PoC written in Python 3 with requests |
| Authentication Required | No |
| Network Access Required | Yes |
Summary
NVIDIA Triton Inference Server exposes separate HTTP endpoints for SageMaker and Vertex AI multi-model integration. These endpoints bypass the operator-configured --http-restricted-api access control, meaning the model-management surface (load/unload/enumerate models) remains reachable by unauthenticated network clients even when restricted-API protections are enabled on the standard HTTP port. Chained with the SageMaker Multi-Model Endpoint (MME) LOAD primitive, an attacker who can place files on a Triton-readable filesystem path can load a malicious Python-backend model, whose model.py executes as the Triton process user — resulting in pre-authentication remote code execution. The repository ships a non-destructive detector, an educational bypass demonstrator, and a full probe/RCE-chain exploit script, verified against official NVIDIA NGC containers.
Vulnerability Details
Root Cause
CWE-288 (Authentication Bypass Using an Alternate Path/Channel): the SageMaker/Vertex AI HTTP surfaces do not enforce the same --http-restricted-api authorization gate applied to the standard Triton HTTP API, leaving model-management endpoints (/models, LOAD/UNLOAD) reachable without credentials.
Attack Vector
- Identify a Triton Inference Server exposing its SageMaker-compatible HTTP port.
- Send unauthenticated requests to the model-management endpoint (no
Authorizationheader) and confirm access where the restricted API would normally deny it. - Use the SageMaker MME LOAD primitive to point Triton at an attacker-writable path containing a Python-backend model (
config.pbtxt+model.py). - Trigger the load; Triton executes
model.pyas the server process user, achieving pre-auth RCE.
Impact
Unauthenticated remote code execution as the Triton Inference Server process user on any deployment where an attacker can place model files on a Triton-readable path — a critical, pre-authentication compromise of the inference host.
Environment / Lab Setup
Target: NVIDIA Triton Inference Server <= 26.02 (v2.66.0), official NGC container, SageMaker HTTP port exposed
Attacker: Python 3.8+, `pip install requests`
Proof of Concept
PoC Script
See
detect.py,bypass_demo.py,exploit.py, andexample/model/in this folder.
| |
detect.py performs a read-only patch-status check; bypass_demo.py shows the authorized-vs-bypass response difference side by side; exploit.py probes the model-management surface and, in --mode rce, loads the benign Python-backend model in example/model/ from an attacker-controlled path to demonstrate code execution as the Triton process user.
Detection & Indicators of Compromise
alert http any any -> $HOME_NET any (msg:"CVE-2026-24207 Triton SageMaker unauth model API access"; ...)
Signs of compromise:
- Unauthenticated requests to the SageMaker/Vertex AI HTTP model-management endpoints in Triton access logs
- Unexpected LOAD/UNLOAD model events referencing unfamiliar model names or attacker-controlled filesystem paths
- New Python-backend models appearing in
/opt/ml/models/(or configured model repository) that were not deployed through the normal CI/CD pipeline
Remediation
| Action | Detail |
|---|---|
| Primary fix | Upgrade to Triton Inference Server 26.03 (v2.67.0) or later, which closes the SageMaker/Vertex AI authorization bypass |
| Interim mitigation | Disable unused SageMaker/Vertex AI compatibility endpoints; place Triton’s SageMaker HTTP port behind network-level access control (firewall/VPC) rather than relying solely on --http-restricted-api; restrict filesystem write access to model repository paths |
References
Notes
Mirrored from https://github.com/offseckit/CVE-2026-24207-triton on 2026-07-05.
| |