ONNX 1.20.1 and below allows silent loading of untrusted models with zero user interaction — the `silent=True` parameter completely suppresses trust verification, turning any automated model-loading pipeline into a credential exfiltration vector. SSH keys and cloud provider credentials can be stolen the moment a model loads, with no user prompt and no log entry. No patch exists; audit all ONNX model loading code today, block `silent=True` usage in production, and rotate credentials on any system that has loaded non-official ONNX models.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| onnx | pip | <= 1.20.1 | No patch |
| onnx | pip | — | No patch |
| onnx | pip | — | No patch |
| onnx | pip | — | No patch |
Severity & Risk
Recommended Action
- IMMEDIATE (0-24h): 1) Grep all codebases for `onnx.hub.load` with `silent=True` and remove the parameter or replace with explicit trust verification. 2) Block or gate all ONNX model loads from non-official sources at code review and CI/CD level. 3) Rotate SSH keys and cloud credentials (AWS, GCP, Azure, API tokens) on any host that has executed ONNX hub loads from unverified sources. SHORT-TERM (1-7d): 4) Add SAST rule to flag `silent=True` in ONNX hub calls — treat as HIGH severity finding. 5) Enforce model hash verification against known-good checksums before load. 6) Sandbox ML workloads with network egress controls (no outbound except to model registry allowlist). 7) Enable egress monitoring on ML pipeline containers for anomalous outbound connections. ONGOING: 8) Subscribe to GHSA-hqmj-h5c6-369m for patch availability. 9) Implement model provenance tracking in your MLOps platform. 10) Apply least-privilege IAM to inference and training workloads.
Classification
Compliance Impact
This CVE is relevant to:
Technical Details
NVD Description
Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. In versions up to and including 1.20.1, a security control bypass exists in onnx.hub.load() due to improper logic in the repository trust verification mechanism. While the function is designed to warn users when loading models from non-official sources, the use of the silent=True parameter completely suppresses all security warnings and confirmation prompts. This vulnerability transforms a standard model-loading function into a vector for Zero-Interaction Supply-Chain Attacks. When chained with file-system vulnerabilities, an attacker can silently exfiltrate sensitive files (SSH keys, cloud credentials) from the victim's machine the moment the model is loaded. As of time of publication, no known patched versions are available.
Exploitation Scenario
Attacker registers a plausible-looking model on a public ONNX model hub (e.g., `org/bert-finetuned-security-v2`), embedding a malicious custom operator that reads `~/.ssh/id_rsa`, `~/.aws/credentials`, and `~/.config/gcloud/` on load and POSTs them to an attacker-controlled endpoint. Attacker then promotes the model via a GitHub README, a benchmark leaderboard entry, or a poisoned documentation PR. A developer or automated pipeline calls `onnx.hub.load('org/bert-finetuned-security-v2', silent=True)` — the `silent=True` flag suppresses the non-official-source trust warning entirely. Model loads, malicious operator executes, credentials exfiltrated in under 500ms. No exception raised, no log entry, pipeline continues normally. Attacker uses exfiltrated AWS credentials to pivot into cloud infrastructure.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N References
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md
- github.com/advisories/GHSA-hqmj-h5c6-369m
- github.com/advisories/GHSA-hqmj-h5c6-369m
- github.com/advisories/GHSA-hqmj-h5c6-369m
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m
- nvd.nist.gov/vuln/detail/CVE-2026-28500
- nvd.nist.gov/vuln/detail/CVE-2026-28500
- nvd.nist.gov/vuln/detail/CVE-2026-28500
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-28500.md Patch
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m Vendor
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m Vendor
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m Vendor
- github.com/onnx/onnx/security/advisories/GHSA-hqmj-h5c6-369m Vendor