{"id":"GHSA-6pwm-x34p-fvj2","summary":"ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank","details":"## Summary\n\nONNX 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.\n\nThe 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()`.\n\n## Technical details\n\nFor 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]`.\n\nThe defect affected both the older `convTransposeShapeInference_opset11()` path and the then-current ConvTranspose inference implementation.\n\n## Impact\n\nAn 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.\n\n## Affected versions\n\n- Affected: ONNX 1.2.1 through 1.21.0\n- Patched: ONNX 1.22.0\n\n## Remediation\n\nUpgrade 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.\n\n- Fix: [onnx/onnx#7997](https://github.com/onnx/onnx/pull/7997)\n- Commit: [`2ec288908`](https://github.com/onnx/onnx/commit/2ec288908952eea9dcf48d4b197915e1f72c6abf)\n\nThe original malformed model was re-tested against the published ONNX 1.23.2 wheel and correctly raises `InferenceError`.\n\n## Severity\n\nThe 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.","aliases":["CVE-2026-115920"],"modified":"2026-10-28T21:30:03.915757861Z","published":"2026-10-28T21:16:42Z","database_specific":{"github_reviewed_at":"2026-10-28T21:16:42Z","nvd_published_at":"2026-10-26T18:17:39Z","cwe_ids":["CWE-125"],"severity":"MODERATE","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/onnx/onnx/security/advisories/GHSA-6pwm-x34p-fvj2"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115920"},{"type":"WEB","url":"https://github.com/onnx/onnx/pull/7997"},{"type":"WEB","url":"https://github.com/onnx/onnx/commit/2ec288908952eea9dcf48d4b197915e1f72c6abf"},{"type":"PACKAGE","url":"https://github.com/onnx/onnx"},{"type":"WEB","url":"https://github.com/onnx/onnx/releases/tag/v1.22.0"}],"affected":[{"package":{"name":"onnx","ecosystem":"PyPI","purl":"pkg:pypi/onnx"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.2.1"},{"fixed":"1.22.0"}]}],"versions":["1.10.0","1.10.1","1.10.2","1.11.0","1.12.0","1.13.0","1.13.1","1.14.0","1.14.1","1.15.0","1.16.0","1.16.1","1.16.2","1.17.0","1.18.0","1.19.0","1.19.1","1.19.1rc1","1.2.1","1.2.2","1.2.3","1.20.0","1.20.0rc1","1.20.0rc2","1.20.1","1.20.1rc1","1.21.0","1.21.0rc1","1.21.0rc2","1.21.0rc3","1.21.0rc4","1.22.0rc1","1.22.0rc2","1.3.0","1.4.0","1.4.1","1.5.0","1.6.0","1.7.0","1.8.0","1.8.1","1.9.0"],"database_specific":{"last_known_affected_version_range":"\u003c= 1.21.0","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-6pwm-x34p-fvj2/GHSA-6pwm-x34p-fvj2.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}