GitHub Advisoryadvisory · PyPI

GHSA-cmw6-hcpp-c6jp ONNX: Arbitrary File Read via ExternalData Hardlink Bypass in ONNX load

MEDIUM Published 2026-04-01 Modified 2026-04-01 Official page ↗
Aliases
CVE-2026-34446
Ecosystem
PyPI
Packages
onnx
Severity
Moderate
CVSS vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
Weaknesses
CWE-22, CWE-61
Reviewed
2026-04-01

Affected packages

• PyPI onnx: < 1.21.0 → fixed in 1.21.0

Description

Summary The issue is in `onnx.load` — the code checks for symlinks to prevent path traversal, but completely misses hardlinks, which is the problem, since a hardlink looks exactly like a regular file on the filesystem. The Real Problem The validator in `onnx/checker.cc` only calls `is_symlink()` and never checks the inode or `st_nlink`, so a hardlink walks right through every security check without any issues. Impact Especially dangerous in AI supply chain scenarios like HuggingFace — a single malicious model is enough to silently steal secrets from the victim's machine without them noticing anything.

Related

Alias · CVE (1)

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

Weakness · CWE (2)

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness
  • CWE-61 UNIX Symbolic Link (Symlink) Following weakness

References