Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft ONNX model with tensor shape/data length mismatch
-
DeliveryDeliver malicious model to target application
-
ExploitApplication invokes from_raw_dt_align on ONNX initializer
-
Executioncopy_from_slice panics on content/expected length mismatch
-
PersistInference process crashes
-
ImpactDenial-of-service condition achieved
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Buffer size calculation
|
| Exploitation Conditions | Exploitation requires that the target application loads an ONNX model containing a tensor initializer whose raw byte content length does not equal the byte count implied by its declared dtype and shape. This is gated by UI:P in the CVSS 4.0 vector - some operator or pipeline action must trigger loading of the crafted model file (e.g., submitting a model for inference, configuring a pipeline to fetch an external model, or processing a batch of ONNX files). No authentication is required on the attacker's side if the application accepts models from untrusted or user-supplied sources. Exploitation is not possible against deployments that load ONNX models exclusively from controlled, pre-validated internal storage with no external model ingestion path. Impact is strictly limited to a process crash; the vulnerability does not enable code execution, data exfiltration, or persistent modification despite the VulDB 'Information Disclosure' tag, which is not supported by source-code evidence. |
| Impact | The CVSS 4.0 base score of 5.3 (AV:N/AC:L/AT:N/PR:N/UI:P/VA:L) correctly frames this as moderate severity with limited impact. The critical gating factor is UI:P - an attacker cannot autonomously trigger the crash; some operator or pipeline action must cause the application to load the malicious ONNX model, substantially constraining opportunistic exploitation. The availability impact is restricted to a process crash (VA:L), with no confidentiality or integrity consequence (VC:N/VI:N) per the CVSS vector - a conclusion fully supported by source-code evidence. The VulDB 'Information Disclosure' tag is inconsistent with both the CVSS impact metrics and the patch diff, which shows only a panic/crash outcome; that tag should not be treated as confirmed. No EPSS score was provided; given the niche deployment footprint of a Rust ML inference library and the UI:P constraint, real-world exploitation probability is estimated to be low. A publicly available PoC (GitHub issue #2390) confirms reproducibility and lowers the exploitation barrier for any attacker who can deliver a model to a pipeline, but the absence of a CISA KEV listing means no confirmed widespread or targeted exploitation has been reported. Net assessment: moderate priority for any environment that ingests externally sourced or user-uploaded ONNX models; low priority for closed pipelines using only internally validated models. |
| Exploit ScenarioDerived | A threat actor crafts an ONNX model file in which a tensor initializer's raw data payload is deliberately shorter than the size implied by its declared dtype and shape - for example, supplying 12 bytes for a float32 tensor with shape [2,3] that requires 24 bytes. When a victim ML pipeline built on Sonos Tract 0.23.x loads this model (via an upload endpoint, an automated model-fetch workflow, or a configured model path pointing to attacker-controlled storage), the from_raw_dt_align function panics inside copy_from_slice, crashing the inference process or service. A public proof-of-concept demonstrating this exact crash pattern is available in GitHub issue #2390. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 18, 2026
Incorrect buffer size validation in Sonos Tract's ONNX Initializer Loader allows a crafted ONNX model file to crash the inference process. The Tensor::from_raw_dt_align function in data/src/tensor.rs accepts a raw byte slice and declared tensor shape without confirming the slice length matches the expected size, causing a Rust panic in copy_from_slice when dimensions mismatch. Applications using Tract 0.23.0-0.23.4 to load untrusted or third-party ONNX models are at risk; a public proof-of-concept (GitHub issue #2390) confirms reproducibility, though no CISA KEV listing means confirmed threat-actor exploitation has not been observed.
RemediationAI
Apply the upstream fix by updating to a release of Sonos Tract that incorporates commit 66b10bda8895f4bfaf8c205361f0125cdf51f99b, merged via PR #2413 (https://github.com/sonos/tract/pull/2413). Note that a specific tagged crates.io release version incorporating this commit has not been independently confirmed from available data - verify the fix is included in the target version's changelog before pinning in Cargo.toml. As a compensating control where immediate upgrade is not feasible, restrict ONNX model ingestion to trusted, internally validated sources only; adding application-layer validation of ONNX initializer tensor shapes against their declared byte lengths before invoking Tract's loader prevents the malformed input from reaching the vulnerable code path with minimal operational overhead. Accepting models from untrusted or user-supplied sources without this gate should be considered high risk until the patch is applied.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Sonos Tract (CPE: cpe:2.3:a:sonos:tract:*:*:*:*:*:*:*:*) is a Rust-based machine learning inference engine with native ONNX model support. The vulnerable path is the ONNX Initializer Loader component, specifically the unsafe Rust functions Tensor::from_raw_dt_align and its sibling from_raw_dt in data/src/tensor.rs. These functions accept a caller-supplied byte slice (content) and a declared tensor shape, then invoke copy_from_slice to populate the tensor buffer. CWE-131 (Incorrect Calculation of Buffer Size) describes the root cause: the code derived an allocation from the declared shape but performed no bounds check to confirm the supplied content length equals dtype × element count before the copy. In safe Rust, copy_from_slice panics on a length mismatch rather than producing undefined behavior, but that panic terminates the hosting thread or process, constituting a denial-of-service. The fix (PR #2413, commit 66b10bda8895f4bfaf8c205361f0125cdf51f99b) inserts an ensure! guard that computes the expected byte length via tensor.as_bytes().len() and returns an error if content.len() differs, along with a regression test covering short, long, and exact-match cases.
Know when Tract gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P
Remote delivery of a malicious ONNX model requires user/operator interaction to load it (UI:R); impact is crash-only with no confidentiality or integrity loss (C:N/I:N/A:L).
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A security vulnerability has been detected in sonos tract up to 0.23.4. This impacts the function Tensor::from_raw_dt_align of the file data/src/tensor.rs of the component ONNX Initializer Loader. Such manipulation leads to incorrect calculation of buffer size. The attack may be launched remotely. The exploit has been disclosed publicly and may be used. The name of the patch is 66b10bda8895f4bfaf8c205361f0125cdf51f99b. It is best practice to apply a patch to resolve this issue.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-60565
GHSA-xjfr-6qjc-v5rw
NVD
CVE.org
EPSS
VulDB
Exploit-DB