GitHub Advisoryadvisory · PyPI

GHSA-hqmj-h5c6-369m ONNX Untrusted Model Repository Warnings Suppressed by silent=True in onnx.hub.load() — Silent Supply-Chain Attack

HIGH Published 2026-03-16 Modified 2026-06-08 Official page ↗
Aliases
CVE-2026-28500
Ecosystem
PyPI
Packages
onnx
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Weaknesses
CWE-345, CWE-494, CWE-693
Reviewed
2026-03-16

Affected packages

• PyPI onnx: < 1.21.0rc1 → fixed in 1.21.0rc1

Description

What's the issue Passing `silent=True` to `onnx.hub.load()` kills all trust warnings and user prompts. This means a model can be downloaded from any unverified GitHub repo with zero user awareness. ```python if not _verify_repo_ref(repo) and not silent: # completely skipped when silent=True print("The model repo... is not trusted") if input().lower() != "y": return None ``` On top of that, the SHA256 integrity check is useless here — it validates against a manifest that lives in the same repo the attacker controls, so the hash will always match. Impact Any pipeline using `hub.load()` with `silent=True` and an external repo string is silently loading whatever the repo owner ships. If that model executes arbitrary code on load, the attacker has access to the machine. Resolved by removing the feature References • Write-up

Related

Alias · CVE (1)

  • CVE-2026-28500 Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. vulnerability

Weakness · CWE (3)

  • CWE-345 Insufficient Verification of Data Authenticity weakness
  • CWE-494 Download of Code Without Integrity Check weakness
  • CWE-693 Protection Mechanism Failure weakness

References