CVE-2026-55093
MediumCVSS 6.1Exploitation Probability (EPSS)
Low risk7th percentile - higher than 7% of all known CVEs
Summary
In Tract 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. Loading a crafted NNEF archive can cause an out-of-bounds heap read and disclose adjacent data, or terminate the process with a segmentation fault.
Risk Assessment
An attacker can disclose memory data or crash the process by loading a crafted NNEF model, posing a threat to confidentiality and availability.
Recommendation
Upgrade Tract to version 0.21.16, 0.22.2, or 0.23.1, which contain the fix resolving this vulnerability.
Other vulnerabilities in Tract
Original NVD description (English source)
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.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

