Tract: Arbitrary file read via unsanitized ONNX external_data `location` (path traversal) on model load in tract-onnx
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Sonos | tract | before 0.21.17; 0.22.0 to before 0.22.3; 0.23.0 to before 0.23.2 | 0.21.17, 0.22.3, 0.23.2 | Patch available | CNA |
| — | tract-onnx (crates.io) | before 0.21.17 | 0.21.17 | Patch available | GHSA-h668-6x6g-f8r5 |
| — | tract-onnx (crates.io) | 0.22.0 to before 0.22.3 | 0.22.3 | Patch available | GHSA-h668-6x6g-f8r5 |
| — | tract-onnx (crates.io) | 0.23.0 to before 0.23.2 | 0.23.2 | Patch available | GHSA-h668-6x6g-f8r5 |
- tract VendorSonos Affected before 0.21.17; 0.22.0 to before 0.22.3; 0.23.0 to before 0.23.2 Fixed in 0.21.17, 0.22.3, 0.23.2 Patch available CNA
- tract-onnx (crates.io) Vendor— Affected before 0.21.17 Fixed in 0.21.17 Patch available GHSA-h668-6x6g-f8r5
- tract-onnx (crates.io) Vendor— Affected 0.22.0 to before 0.22.3 Fixed in 0.22.3 Patch available GHSA-h668-6x6g-f8r5
- tract-onnx (crates.io) Vendor— Affected 0.23.0 to before 0.23.2 Fixed in 0.23.2 Patch available GHSA-h668-6x6g-f8r5
Remediation
- Fix · CNA tract (sonos) Fixed in 0.21.17, 0.22.3, 0.23.2
- Fix · GHSA-h668-6x6g-f8r5 tract-onnx (crates.io) Fixed in 0.21.17 Advisory →
- Fix · GHSA-h668-6x6g-f8r5 tract-onnx (crates.io) Fixed in 0.22.3 Advisory →
- Fix · GHSA-h668-6x6g-f8r5 tract-onnx (crates.io) Fixed in 0.23.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-55832
- 2026-10-03 Alias added: GHSA-h668-6x6g-f8r5
References
Other 8
- https://github.com/sonos/tract/security/advisories/GHSA-h668-6x6g-f8r5
- https://github.com/sonos/tract/commit/5f994bcf3cec9b343830a975fedce177f9190d0f
- https://github.com/sonos/tract/commit/85f4fac23e43d417782e8ed9f9465be8474f5c98
- https://github.com/sonos/tract/commit/8fdacbd7abe4e6f929cadfe52e7f69e2227c0632
- https://github.com/sonos/tract/releases/tag/0.21.17
- https://github.com/sonos/tract/releases/tag/0.22.3
- https://github.com/sonos/tract/releases/tag/v0.23.2
- https://github.com/sonos/tract
More Sonos vulnerabilities
- TI-2020-07425 Some versions of Sonos One (1st and 2nd generation) allow partial or full memory access… CVSS 3.1MEDIUM 6.8
- TI-2026-39797 tract-nnef: integer overflow in NNEF `.dat` tensor parser yields an out-of-bounds read on model load CVSS 3.1MEDIUM 6.1
- TI-2026-52761 sonos tract ONNX Initializer Loader tensor.rs from_raw_dt_align buffer size CVSS 4.0MEDIUM 5.3
- TI-2022-08009 Stack-based buffer overflow in Sonos One Speaker CVSS 3.1CRITICAL 9.8
- TI-2026-03597 Memory corruption in Sonos Era 300 CVSS 3.1CRITICAL 9.8
- TI-2025-28483 Sonos api.sonos.com through 2025-04-21, when the /login/v3/oauth endpoint is used… CVSS 3.1LOW 3.4
Sources
- CVE-2026-55832 · CVE Program
- CVE-2026-55832 · NVD
- FIRST EPSS
- GHSA-h668-6x6g-f8r5 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences