Repository navigation
docs: Add SECURITY.md #367
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
8d810a9
34fbcc8
d0120a2
8a08d50
bcb0d54
f9a90e4
ba01d42
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,80 @@ | ||||||
| <!-- | ||||||
| # Copyright 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||||||
| # | ||||||
| # Redistribution and use in source and binary forms, with or without | ||||||
| # modification, are permitted provided that the following conditions | ||||||
| # are met: | ||||||
| # * Redistributions of source code must retain the above copyright | ||||||
| # notice, this list of conditions and the following disclaimer. | ||||||
| # * Redistributions in binary form must reproduce the above copyright | ||||||
| # notice, this list of conditions and the following disclaimer in the | ||||||
| # documentation and/or other materials provided with the distribution. | ||||||
| # * Neither the name of NVIDIA CORPORATION nor the names of its | ||||||
| # contributors may be used to endorse or promote products derived | ||||||
| # from this software without specific prior written permission. | ||||||
| # | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY | ||||||
| # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||||
| # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||||||
| # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | ||||||
| # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||||||
| # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||||||
| # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||||
| # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | ||||||
| # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| --> | ||||||
|
|
||||||
| # Security Policy | ||||||
|
|
||||||
| ## Reporting a Vulnerability | ||||||
|
|
||||||
| NVIDIA is dedicated to the security and trust of our software products and services, including all source code repositories managed through our organization. | ||||||
|
|
||||||
| To report a potential security vulnerability, please use one of the following channels: | ||||||
|
|
||||||
| 1. **NVIDIA Vulnerability Disclosure Program** (preferred): https://www.nvidia.com/en-us/security/ | ||||||
| 2. **Web form:** [Security Vulnerability Submission Form](https://www.nvidia.com/object/submit-security-vulnerability.html) | ||||||
| 3. **Email:** [NVIDIA PSIRT](mailto:psirt@nvidia.com). Please encrypt sensitive reports with NVIDIA's [PGP key](https://www.nvidia.com/en-us/security/pgp-key). | ||||||
| 4. **GitHub Private Vulnerability Reporting (where enabled):** use the "Report a vulnerability" button on the Security tab of this repository. | ||||||
|
|
||||||
| **Do not open a public issue or pull request to report a vulnerability.** | ||||||
|
|
||||||
| Please include: | ||||||
|
|
||||||
| * Product or component name and version or branch | ||||||
| * Type of vulnerability | ||||||
| * Steps to reproduce | ||||||
| * Proof of concept, if available | ||||||
| * Potential impact and how it could be exploited | ||||||
|
|
||||||
| See https://www.nvidia.com/en-us/security/ for past NVIDIA Security Bulletins and Notices. | ||||||
|
|
||||||
| ## Security Architecture and Context | ||||||
|
|
||||||
| **Project:** The Triton backend for the ONNX Runtime. | ||||||
|
|
||||||
| **Software type:** Software component (library, backend, client or tool) used as part of a Triton Inference Server deployment. | ||||||
|
|
||||||
| **Security boundaries:** The main security boundary is between this component and the data, models and configuration it is given, and between it and the server or application that hosts it. | ||||||
|
|
||||||
| **Repository Exposure Classification:** Public. | ||||||
|
|
||||||
| **Service Exposure Classification:** Deployment-dependent. Exposure depends on how the software is deployed and configured by the operator. | ||||||
|
|
||||||
| ## Threat Model | ||||||
|
|
||||||
| 1. **Untrusted input:** Requests, models, configuration or data supplied to this component may be malformed or malicious, and could cause crashes, memory errors or unintended behavior if not validated. | ||||||
| 2. **Supply chain:** Source and build dependencies fetched at build or install time may be compromised, outdated or unpinned. | ||||||
| 3. **Network exposure:** When deployed behind a network-facing server, endpoints may be reachable by untrusted clients. This component does not by itself provide authentication, authorization or encryption. | ||||||
| 4. **Resource exhaustion:** Oversized or numerous requests may consume memory, compute or other resources and degrade availability. | ||||||
| 5. **Information disclosure:** Logs, metrics and error messages may reveal sensitive data such as paths, identifiers or request content. | ||||||
|
|
||||||
| ## Critical Security Assumptions | ||||||
|
|
||||||
| * The component is deployed in a trusted environment or behind a gateway that provides authentication, authorization, TLS and rate limiting. | ||||||
| * Models, configuration and other inputs come from trusted sources. | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The assumption that “other inputs” come from trusted sources appears to include inference requests, although the threat model says requests can come from untrusted clients. Request tensor data reaches ONNX Runtime after structural checks. This wording makes it harder for operators to distinguish client-controlled requests from trusted model artifacts and configuration.
Suggested change
|
||||||
| * Dependencies and the build environment are kept up to date and obtained from trusted sources. | ||||||
| * Operators protect secrets, certificates and credentials, and restrict access to logs and metrics. | ||||||
| * Host operating system, driver and hardware security are the operator's responsibility. | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new description places a security boundary between the backend and its hosting server. This backend is a shared library that runs inside the Triton server process with the server’s privileges. An operator relying on this threat model could wrongly assume a compromised model or backend is isolated from the server. State explicitly that there is no process boundary between them.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!