Skip to content
ONNXGHSA-cmw6-hcpp-c6jp

ONNX: Arbitrary File Read via ExternalData Hardlink Bypass in ONNX load

Medium4.7CVE-2026-34446 · Published Apr 1, 2026 · updated Sep 10, 2026

GitHub advisory

Affected versions

PackageAffectedFixed in
onnx
PyPI
< 1.21.01.21.0
Details and references

### 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.

CVSS 3.1
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
Severity from
GitHub (reviewed advisory)
Weakness
CWE-22, CWE-61
Also known as
CVE-2026-34446, PYSEC-2026-2241

More ONNX advisories

All ONNX
DateAdvisory
Mar 31onnx Vulnerable to Path Traversal via Symlink
CVE-2026-27489Highfixed in 1.21.0
Apr 1ONNX: Malicious ONNX models can crash servers by exploiting unprotected object settings.
CVE-2026-34445High8.6fixed in 1.21.0
Apr 1ONNX: External Data Symlink Traversal
CVE-2026-34447Medium5.5fixed in 1.21.0
Apr 1ONNX: TOCTOU arbitrary file read/write in save_external_dat
CVE-2026-49114High7.1fixed in 1.21.0
Mar 16ONNX Untrusted Model Repository Warnings Suppressed by silent=True in onnx.hub.load() , Silent Supply-Chain Attack
CVE-2026-28500High8.6fixed in 1.21.0rc1
Jul 7ONNX has Null Pointer Dereference in Upsample Version Converter Adapter (Zero Inputs)
CVE-2026-44512Medium5.5fixed in 1.22.0

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.