{"id":"CVE-2026-115920","aliases":["AZL-112169","DEBIAN-CVE-2026-115920","EUVD-2026-110041","GHSA-6pwm-x34p-fvj2","UBUNTU-CVE-2026-115920"],"status":"published","title":"ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","severity":{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00178,"percentile":0.07491,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-125"],"published":"2026-10-26T17:26:40Z","modified":"2026-11-05T05:40:51Z","fixes":[{"ecosystem":"PyPI","package":"onnx","fixed_in":["1.22.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.2.1"},{"last_affected":"1.21.0"},{"fixed":"1.22.0"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"pytorch","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.2.2-17"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.12.0-2","1.13.1-1","1.13.1-2","1.13.1-3","1.14.1-1","1.14.1-2","1.14.1-2.1","1.14.1-2.1~exp1","1.16.1-1","1.16.2-1","1.17.0-1","1.17.0-2","1.17.0-3","1.19.1-1~exp1","1.20.0-1","1.20.0-1~exp1","1.20.0-3","1.20.0-4","1.20.0-5","1.20.0-6","1.21.0-1"]},{"source":"osv","ecosystem":"Debian:13","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.17.0-3","1.19.1-1~exp1","1.20.0-1","1.20.0-1~exp1","1.20.0-3","1.20.0-4","1.20.0-5","1.20.0-6","1.21.0-1"]},{"source":"osv","ecosystem":"Debian:14","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.17.0-3","1.19.1-1~exp1","1.20.0-1","1.20.0-1~exp1","1.20.0-3","1.20.0-4","1.20.0-5","1.20.0-6","1.21.0-1"]},{"source":"osv","ecosystem":"PyPI","package":"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"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7.0+dfsg-3build1","1.7.0+dfsg-3build2","1.7.0+dfsg-3ubuntu1","1.7.0+dfsg-3ubuntu2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.13.1-3","1.13.1-3build1","1.14.1-2","1.14.1-2.1","1.14.1-2.1build1","1.14.1-2.1build2","1.14.1-2.1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.20.0-1","1.20.0-6"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"onnx","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.17.0-3build1","1.20.0-1"]}],"products":[{"vendor":"onnx","product":"onnx"}],"references":[{"url":"https://github.com/onnx/onnx/security/advisories/GHSA-6pwm-x34p-fvj2","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/onnx/onnx/pull/7997","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/onnx/onnx/commit/2ec288908952eea9dcf48d4b197915e1f72c6abf","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/onnx/onnx/releases/tag/v1.22.0","tags":["x_refsource_MISC","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115920","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-6pwm-x34p-fvj2"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/115xxx/CVE-2026-115920.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-115920","tags":["advisory"]},{"url":"https://github.com/onnx/onnx","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2026-115920","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-115920","tags":["report"]},{"url":"https://github.com/cveproject/cvelistv5/tree/main/cves/2026/115xxx/cve-2026-115920.json","tags":["report"]},{"url":"https://github.com/onnx/onnx/security/advisories/ghsa-6pwm-x34p-fvj2","tags":["report"]},{"url":"https://nvd.nist.gov/vuln/detail/cve-2026-115920","tags":["report"]},{"url":"https://security-tracker.debian.org/tracker/cve-2026-115920","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-115920","title":"ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T17:26:40.506Z","modified":"2026-10-26T19:48:35.202Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:20:01.618694Z"}],"euvd":[{"id":"EUVD-2026-110041","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T17:26:40Z","modified":"2026-10-26T19:48:35Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T16:59:28.357127Z"}],"ghsa":[{"id":"GHSA-6pwm-x34p-fvj2","title":"ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank","description":"## 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.","status":"published","published":"2026-10-28T21:16:42Z","modified":"2026-10-28T21:16:43Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:41:39.926569Z"}],"nvd":[{"id":"CVE-2026-115920","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T18:17:39.8Z","modified":"2026-10-26T20:17:52.137Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:13:03.452847Z"}],"osv":[{"id":"CVE-2026-115920","title":"ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T17:26:40.506Z","modified":"2026-11-11T10:47:24.20975223Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-11T03:22:00.901153Z"},{"id":"DEBIAN-CVE-2026-115920","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T18:17:39.8Z","modified":"2026-10-27T08:00:07.534415295Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:45:50.923612Z"},{"id":"GHSA-6pwm-x34p-fvj2","title":"ONNX: Out-of-bounds read in ConvTranspose shape inference via undersized weight rank","description":"## 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.","status":"published","published":"2026-10-28T21:16:42Z","modified":"2026-10-28T21:30:03.915757861Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T15:46:39.965326Z"},{"id":"UBUNTU-CVE-2026-115920","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T18:17:00Z","modified":"2026-10-28T20:17:45.657123064Z","cvss":[{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"},{"version":"3.1","score":6.2,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T16:56:00.081948Z"},{"id":"AZL-112169","title":"CVE-2026-115920 affecting package pytorch 2.2.2-17","description":"Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. From 1.2.1 until 1.22.0, ConvTranspose shape inference processes a weight tensor with fewer than three dimensions without a kernel_shape attribute by deriving an empty effective_kernel_shape and indexing it for the input's spatial dimensions. The flaw affects convTransposeShapeInference_opset11() and the current inference path, and an untrusted model that can pass onnx.checker.check_model() can crash onnx.shape_inference.infer_shapes(), causing denial of service without demonstrated confidentiality or integrity impact. This issue is fixed in version 1.22.0.","status":"published","published":"2026-10-26T18:17:39Z","modified":"2026-11-05T05:40:51Z","updated_at":"2026-11-05T16:41:19.001909Z"}]}}
