Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious ONNX model (undersized ConvTranspose weight, no kernel_shape)
-
DeliveryPass onnx.checker.check_model validation
-
ExploitSubmit to application's shape-inference path
-
ExecutionTrigger out-of-bounds read on empty effective_kernel_shape
-
ImpactProcess crash / denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an application to call onnx.shape_inference.infer_shapes() on an attacker-supplied ONNX model (versions 1.2.1 through 1.21.0). The model must contain a ConvTranspose node whose weight tensor (input 1) has fewer than three dimensions AND no explicit kernel_shape attribute, producing an empty effective_kernel_shape that is then indexed per input spatial dimension. The malicious model passes onnx.checker.check_model(), so that validation step does not limit exploitation. Limiting factors: the attack is local/library-boundary by default (AV:L) - the attacker must get the crafted model into a pipeline that performs shape inference, so the realistic exposure is services that accept untrusted/uploaded models (where the vendor advises treating the vector as Network); impact is confined to a crash of the hosting process (availability only); and the flaw is fully remediated in 1.22.0, which rejects input and weight tensors with fewer than three dimensions before deriving the kernel shape. |
| Impact | This is a genuine but bounded availability issue, not a top-tier emergency. The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 6.2 Medium) correctly captures the shape of the risk: the only impact is availability (A:H) via a deterministic process crash, with no confidentiality or integrity impact, and the attack vector is Local (AV:L) because the vulnerable ONNX component processes the malicious model through a library API or file boundary rather than a network stack. The GHSA advisory explicitly flags that applications exposing ONNX model processing over a network should compute an Environmental score with Modified Attack Vector = Network, which would materially raise urgency for model-serving/upload services - so the base AV:L may understate risk for network-facing deployments. No EPSS probability was supplied, there is no CISA KEV listing, and there is no verified public exploit code (the advisory describes the triggering model conceptually but no working PoC reference is provided), so there is no public exploit identified at time of analysis. The vuln.today decision label is 'this_month' rather than act_now/emergency, consistent with a medium-severity, DoS-only, locally-scoped flaw. Net: a real and easily-triggered denial of service for any service that runs shape inference on untrusted models, but the absence of confidentiality/integrity impact, active exploitation, or network-default reachability keeps it a planned-remediation item rather than a drop-everything priority. |
| Exploit ScenarioDerived | An attacker submits a crafted ONNX model to an application that runs onnx.shape_inference.infer_shapes() on untrusted input (for example a model-conversion, validation, or hosting service). The model contains a ConvTranspose node whose weight tensor has fewer than three dimensions and omits the kernel_shape attribute; it still passes onnx.checker.check_model(), so naive validation does not reject it. When shape inference derives an empty effective_kernel_shape and indexes element [0], the process crashes (SIGSEGV), denying service. No verified public exploit code is available, and exploitation requires local/library-boundary access to the inference path (AV:L). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 26, 2026
Out-of-bounds read in ONNX ConvTranspose shape inference (convTransposeShapeInference and convTransposeShapeInference_opset11) lets a crafted model terminate the hosting process, causing denial of service. The issue affects ONNX 1.2.1 through 1.21.0 and is triggered when an application calls onnx.shape_inference.infer_shapes() on an attacker-supplied model containing a ConvTranspose node whose weight tensor (input 1) has fewer than three dimensions and no kernel_shape attribute; such a model still passes onnx.checker.check_model(), so that validation does not block it. Severity is assessed at CVSS 3.1 6.2 (AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) with availability-only impact and no demonstrated confidentiality or integrity effect; no public exploit has been identified at time of analysis, and the issue is fixed in ONNX 1.22.0.
RemediationAI
Vendor-released patch: ONNX 1.22.0. Upgrade the onnx package to 1.22.0 or later - the vendor re-tested the original malformed model against the published 1.23.2 wheel, where it now raises InferenceError instead of crashing - from https://github.com/onnx/onnx/releases/tag/v1.22.0, which carries the fix from PR https://github.com/onnx/onnx/pull/7997 (commit 2ec288908952eea9dcf48d4b197915e1f72c6abf) as described in advisory https://github.com/onnx/onnx/security/advisories/GHSA-6pwm-x34p-fvj2. Note that the patch also tightens maxUnpool shape inference (shape presence and minimum two-dimensional rank for the indices input) and now rejects input tensors with fewer than three dimensions in ConvTranspose inference, so pipelines that previously fed undersized or partially-shaped tensors through infer_shapes() may start receiving InferenceError; validate that your model-processing flows tolerate these stricter failures. Because the flaw is reachable only through the shape-inference API on untrusted models, the vendor's guidance is that the default vector is local (AV:L) and the component is not bound to a network stack, so services that accept uploaded or third-party models over a network should treat the vector as Network in an Environmental score and prioritize the upgrade accordingly; no separate configuration-level mitigation is documented, and upgrading is the complete fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ONNX is an open standard and reference library for machine learning model interchange; shape inference (onnx.shape_inference.infer_shapes) statically propagates tensor dimensions through a graph so downstream tooling and runtimes know expected shapes. In the ConvTranspose shape-inference routine, when the model omits an explicit kernel_shape attribute, the kernel is derived from dimensions 2 onward of the weight tensor. With an input shape such as [1, 1, 5] the code computes one spatial input dimension, but a weight of shape [1, 3] yields no spatial dimensions, so the derived effective_kernel_shape vector is empty; the output-shape loop nevertheless indexes effective_kernel_shape[0] once per input spatial dimension. This is a CWE-125 out-of-bounds read on a C++ std::vector element that is not present, producing a deterministic SIGSEGV rather than a graceful InferenceError. Both the current ConvTranspose implementation in onnx/defs/nn/defs.cc and the legacy convTransposeShapeInference_opset11 path in onnx/defs/nn/old.cc were affected, meaning older opset models hit the same defect. The upstream fix (PR #7997, commit 2ec288908) rejects input tensors with fewer than three dimensions (fail_shape_inference when dim_size < 3) and applies the same rank check to the weight tensor before deriving the spatial kernel shape, and it also hardens the adjacent maxUnpool shape inference by verifying that the indices input has a shape and at least two dimensions; the fix was re-tested against the published 1.23.2 wheel, where the malformed model now raises InferenceError. The vulnerable component is a local library API rather than a network service, and the flaw is only reachable when shape inference is actually run over untrusted model content.
Know when Onnx gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Model is processed via a local library/file boundary (AV:L) with no auth and a deterministic crash on first attempt (AC:L/PR:N/UI:N); DoS-only, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Blast Radius
ecosystem impact- 1 pypi packages depend on onnx (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 1.2.1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
A vulnerability in the `download_model_with_test_data` function of the onnx/onnx framework, version 1.16.0, allows for a
Symlink-following arbitrary file write in ONNX's save_external_data function (onnx/external_data_helper.py) allows a loc
Versions of the package onnx before and including 1.15.0 are vulnerable to Out-of-bounds Read as the ONNX_ASSERT and ONN
Arbitrary attribute injection in ONNX Python library (versions prior to 1.21.0) allows unauthenticated remote attackers
Versions of the package onnx before and including 1.15.0 are vulnerable to Directory Traversal as the external_data fiel
Memory exhaustion denial of service in ONNX prior to 1.22.0: the Python tensor-materialization helpers _unpack_2bit() an
Shape inference in the ONNX library (versions 1.4.0 through 1.21.0) mishandles the required Scan attribute num_scan_inpu
Out-of-bounds read in ONNX's legacy shape-inference path allows an attacker-supplied model to crash a process that calls
Out-of-bounds read in ONNX versions up to 1.21.x exposes limited memory contents to low-privileged remote attackers via
ONNX versions prior to 1.21.0 allow local attackers to read arbitrary files outside the model directory through symlink
ONNX versions prior to 1.21.0 allow local attackers to read arbitrary files by exploiting a hardlink-based path traversa
Weak cache key construction in onnx-mlir's torch backend (versions up to 0.5.0.0) omits tensor data type (dtype) from pl
EUVD-2026-110041
GHSA-6pwm-x34p-fvj2
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB