Skip to main content
← All vulnerabilities
CVE-2026-55832GHSA-H668-6X6G-F8R5

Tract: Arbitrary file read via unsanitized ONNX external_data `location` (path traversal) on model load in tract-onnx

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.21.17, 0.22.3, 0.23.2
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

Tract is a tiny, no-nonsense, self-contained TensorFlow and ONNX inference toolkit. Prior to 0.21.17, 0.22.3, and 0.23.2, the tract-onnx crate passes the attacker-controlled external_data location from an ONNX model through onnx/src/tensor.rs get_external_resources and joins the value to the model directory without rejecting absolute paths or parent directory components. Loading an untrusted model through model_for_path can therefore make onnx/src/data_resolver.rs MmapDataResolver open an arbitrary local file and place the file contents into model tensors or inference output. Attacker-controlled offset and length fields can also select an out-of-range mapping slice and cause a denial of service, but the flaw does not write files or execute code. This issue is fixed in versions 0.21.17, 0.22.3, and 0.23.2.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • sonos tract

    fixed in 0.21.17; From 0.22.0 · fixed in 0.22.3; From 0.23.0 · fixed in 0.23.2

  • tract-onnxcrates.io

    fixed in 0.21.17

  • tract-onnxcrates.io

    From 0.22.0 · fixed in 0.22.3

  • tract-onnxcrates.io

    From 0.23.0 · fixed in 0.23.2

References 7

GitHub · sonos/tract