Medium, CVSS 6.1crates.ioPublished
tract-nnef: integer overflow in NNEF .dat tensor parser yields an out-of-bounds read on model load
CVE-2026-55093 · GHSA-x5mv-8wgw-29hg
- Affected
- crates.io tract-nnef >= 0.23.0, < 0.23.1; >= 0.22.0, < 0.22.2; < 0.21.16
- Fixed in
- 0.21.160.22.20.23.1· Vendor fix available
- Issue
- - Component: tract-nnef (nnef/src/tensors.rs::readtensor) + tract-data (data/src/tensor.rs) - Affected versions: < 0.21.16, 0.22.0–0.22.2, 0.23.0–0.23.1 — the dense DatLoader path was unguarded across all three release lines; patched in 0.21.16 / 0.22.2 / 0.23.1 - Class: CWE-190 (integer overflow) → CWE-125 (out-of-bounds read) - Trigger: loading a crafted NNEF model archive (.nnef.tgz / .nnef.tar / dir) via the public tractnnef::nnef().modelforpath / modelforread - Impact: readtensor returns a memory-unsafe tensor (reported len 2^61 over a 56-byte heap allocation). Always-on primitive: a bounded heap out-of-bounds read during model build (asuniform), an adjacent-heap information-disclosure reachable via the public load API. The resulting slice is an unsound fromrawparts(ptr, 2^61) that SIGSEGVs (DoS) on any access past the mapped region (demonstrated by direct access). No out-of-bounds write and no RCE were achieved — tract's const-folding/asuniform fast-paths fold simple consuming…
Recommended action: Upgrade to 0.23.1, 0.22.2 or 0.21.16 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.