CVE-2026-34447: ONNX symlink traversal in external data loading

CVE-2026-34447 · Severity: medium · CVSS 5.5 · Published 2026-04-01

ONNX is an open-source format for artificial intelligence models. A vulnerability in how it loads external data allows a specially crafted model file to read sensitive files from the user's computer. This could lead to the theft of private information if a user is tricked into opening a malicious AI model.

Technologies: onnx (PyPI). Vendors: Linuxfoundation, PyPI.

Quick answers

Is CVE-2026-34447 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-34447 being exploited in the wild.
How severe is CVE-2026-34447?
Medium severity, with a CVSS score of 5.5, published 1 April 2026.
Which products and versions are affected?
onnx (PyPI) < 1.21.0, ECOSYSTEM:introduced=0,fixed=1.21.0.
Is there a fix for CVE-2026-34447?
Yes. onnx (PyPI): upgrade to 1.21.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-34447 attacked?
It is attacked with local access, in a software library.
Am I affected by CVE-2026-34447?
Check whether you run Linuxfoundation Onnx or onnx (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • onnx (PyPI): upgrade to 1.21.0 or later
    pip install "onnx>=1.21.0"

Technical details

A symlink traversal vulnerability exists in `onnx/onnx/checker.cc` within the `resolve_external_data_location` function. While the function attempts to validate that external data paths are relative and reside within the base directory, it uses `std::filesystem::is_regular_file`, which follows symbolic links. An attacker can provide a model where an external data reference points to a symlink within the model directory that targets a sensitive file elsewhere on the filesystem (e.g., `/etc/passwd`). When `load_external_data_for_model` is called, the library will read the contents of the linked file into the model's tensors. This is fixed in version 1.21.0.

Affected products

  • ONNX onnx < 1.21.0

Identifiers

  • CVE-2026-34447
  • GHSA-p433-9wv8-28xj
  • PYSEC-2026-104

Timeline

  • 2026-03-31: disclosed
  • 2026-04-01: advisory
  • 2026-04-01: patched: Fixed in version 1.21.0

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.