Skip to content
OpenAdvisories
Medium · 6.1 CVE-2026-55832 EUVD-2026-77721GHSA-h668-6x6g-f8r5

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

Published Sep 14, 2026 · Updated Sep 14, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
sonos tract < 0.21.17, >= 0.22.0, < 0.22.3, >= 0.23.0, < 0.23.2 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling ascan 2.3.0-r0 —

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io tract-onnx < 0.21.17 0.21.17 GHSA-h668-6x6g-f8r5
crates.io tract-onnx >= 0.22.0, < 0.22.3 0.22.3 GHSA-h668-6x6g-f8r5
crates.io tract-onnx >= 0.23.0, < 0.23.2 0.23.2 GHSA-h668-6x6g-f8r5

References