GitHub Advisoryadvisory · PyPI
GHSA-cmw6-hcpp-c6jp ONNX: Arbitrary File Read via ExternalData Hardlink Bypass in ONNX load
MEDIUM
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