CVE-2026-55093 json
tract-nnef: integer overflow in NNEF `.dat` tensor parser yields an out-of-bounds read on model load
published 2026-06-18 4 mo ago modified 2026-10-12 27 d ago also GHSA-x5mv-8wgw-29hg , RUSTSEC-2026-0217 , EUVD-2026-77792
- cvss
- 6.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
Tract is a tiny, no-nonsense, self-contained TensorFlow and ONNX inference toolkit. Prior to 0.21.16, 0.22.2, and 0.23.1, tract-nnef uses unchecked usize multiplication in nnef/src/tensors.rs read_tensor for attacker-controlled tensor dimensions, the allocation size, and the reported tensor length. Loading a crafted NNEF archive through model_for_path or model_for_read reaches the default DatLoader and can make the wrapped size check accept a small allocation while data/src/tensor.rs as_slice_unchecked creates a much larger logical slice. Model construction through as_uniform can then read beyond the heap allocation and disclose adjacent data, and later access can terminate the process with a segmentation fault. The affected dense numeric tensor path does not include the independently guarded bool, String, or block-quant paths, and no out-of-bounds write or code execution was demonstrated. This issue is fixed in versions 0.21.16, 0.22.2, and 0.23.1.
Patch / fix
- crates.io tract-nnef 0.21.16, 0.22.2, 0.23.1
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 55 d ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/sonos/tract/security/advisories/GHSA-x5mv-8wgw-29hg referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.1 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H |
| GitHub | 3.1 | 6.1 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H |
| OSV | 3.1 | 6.1 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | tract-nnef | >=0.23.0, <0.23.1 >=0.22.0, <0.22.2 <0.21.16 >=0.0.0-0, <0.21.16 |
0.23.1 0.22.2 0.21.16 |
Affected products
- sonos tract
Classification
References
-
github.com
/sonos/tract/commit/34c7df2c9bd2a36583e09b52f3e6319bf23102e8
web
- github.com /sonos/tract/commit/828ec20f74c14c0923c7d7f0cff062ed222d630a
- github.com /sonos/tract/commit/ee5f019d39fb97f7d4431b883c3ce97b74c28a64
-
github.com
/sonos/tract/security/advisories/GHSA-x5mv-8wgw-29hg
exploit, web
- github.com /sonos/tract/releases/tag/0.21.16
- github.com /sonos/tract/releases/tag/0.22.2
- github.com /sonos/tract/releases/tag/v0.23.1
-
github.com
/sonos/tract
package
-
crates.io
/crates/tract-nnef
package
-
rustsec.org
/advisories/RUSTSEC-2026-0217.html
advisory
Sources
- CVE List CVE-2026-55093
- GitHub Advisory GHSA-x5mv-8wgw-29hg
- NVD CVE-2026-55093
- OSV RUSTSEC-2026-0217
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.