AI and data stack advisories

Severe, 6 weeks459Projects324

459 severe, 6 weeks · 324 projects

ONNXGHSA-6pwm-x34p-fvj2

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

ONNX

CVE-2026-115920 · Published Oct 28, 2026

Medium6.2
Fix: upgrade to 1.22.0 or later
GitHub advisory

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

Affected versions

PackageAffectedFixed in
onnx
PyPI
>= 1.2.1, < 1.22.01.22.0
Details and references

## 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. - Fix: [onnx/onnx#7997](https://github.com/onnx/onnx/pull/7997) - Commit: [`2ec288908`](https://github.com/onnx/onnx/commit/2ec288908952eea9dcf48d4b197915e1f72c6abf) 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.

CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Severity from
GitHub (reviewed advisory)
Weakness
CWE-125
Also known as
CVE-2026-115920

More ONNX advisories

All ONNX