MEDIUM 6.2 PyPI

ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank

GHSA-6pwm-x34p-fvj2 · CVE-2026-115920

Published · Modified

AI SAST

Find this class of vulnerability in your own code

Corgea's AI-native static analysis detects vulnerabilities like this one across your repositories, ranks them by exploitability, and returns review-ready fixes.

Description

Summary

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().

Technical details

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.

Impact

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.

Affected versions

  • Affected: ONNX 1.2.1 through 1.21.0
  • Patched: ONNX 1.22.0

Remediation

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.

The original malformed model was re-tested against the published ONNX 1.23.2 wheel and correctly raises InferenceError.

Severity

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.

Ready to move

Start Securing

Free, no credit card | First findings in minutes