GHSA-cmw6-hcpp-c6jpMediumCVSS 4.7
ONNX: Arbitrary File Read via ExternalData Hardlink Bypass in ONNX load
🔗 CVE IDs covered (1)
📋 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.
🎯 Affected products1
- pip/onnx:<= 1.20.1