ONNX ConvTranspose shape inference performed an out-of-bounds read when the weight tensor had fewer than three dimensions and the model did not provide a kernel_shape attribute.
The inference function derived an empty effective_kernel_shape vector from the undersized weight tensor, then indexed that vector once for each spatial dimension of the input tensor. A crafted model passed onnx.checker.check_model() and caused SIGSEGV when passed to onnx.shape_inference.infer_shapes().
For an input shape such as [1, 1, 5], shape inference computes one spatial input dimension. A weight shape such as [1, 3] has no spatial dimensions, so deriving kernel_shape from dimensions 2 onward produces an empty vector. The output loop nevertheless accesses effective_kernel_shape[0].
The defect affected both the older convTransposeShapeInference_opset11() path and the then-current ConvTranspose inference implementation.
An application that performs shape inference on an untrusted model can be terminated, causing denial of service. The observed result was a deterministic process crash. No confidentiality or integrity impact was demonstrated.
Upgrade to ONNX 1.22.0 or later. The fix rejects input and weight tensors with fewer than three dimensions before deriving the spatial kernel shape.
2ec288908The original malformed model was re-tested against the published ONNX 1.23.2 wheel and correctly raises InferenceError.
The vulnerable ONNX component processes the malicious model through a local library API or file boundary and is not itself bound to a network stack. Applications that expose ONNX model processing over a network should calculate an Environmental score with Modified Attack Vector set to Network.
{
"cwe_ids": [
"CWE-125"
],
"github_reviewed": true,
"github_reviewed_at": "2026-10-28T21:16:42Z",
"nvd_published_at": "2026-10-26T18:17:39Z",
"severity": "MODERATE"
}