ONNXGHSA-cmw6-hcpp-c6jp
ONNX: Arbitrary File Read via ExternalData Hardlink Bypass in ONNX load
Fix: upgrade to 1.21.0 or later
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 versions
| Package | Affected | Fixed in |
|---|---|---|
| onnx PyPI | < 1.21.0 | 1.21.0 |