Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted ONNX model to application
-
ExploitModel passes onnx.checker.check_model() validation
-
ExecutionShape inference reads undersized protobuf dimensions
-
ImpactOut-of-bounds read triggers SIGSEGV, process terminated (DoS)
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 the target application to call onnx.shape_inference.infer_shapes() on an attacker-supplied/untrusted ONNX model. The model must contain an RNN or LSTM node from opsets 1-6, or a GRU node from opsets 3-6, whose first input (X) has a rank other than three, and it must still pass onnx.checker.check_model() so that it reaches the vulnerable path. Limiting factors: the attack vector is Local (AV:L) - the attacker needs their model to be ingested through a file or library boundary, not a network stack by default; only ONNX versions through 1.21.0 are affected (fixed in 1.22.0); only those specific legacy opset schemas are vulnerable (newer opset 7-13 and 14+ paths already enforce the rank-3 check); and the impact is limited to process termination (DoS) with no code execution or data exposure. |
| Impact | This is a moderate-priority denial-of-service issue, not a critical one. The vendor CVSS is 6.2 Medium (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H): the vector is Local (AV:L) because the ONNX library processes the malicious model through a local library API or file boundary rather than a network stack, and impact is availability-only (A:H) with no confidentiality or integrity impact (C:N/I:N). The GHSA advisory explicitly recommends computing an Environmental score with Modified Attack Vector:Network only for applications that expose ONNX model processing over a network - so the real-world severity rises for model-ingestion services and stays low for local/offline tooling. No EPSS score was supplied and the CVE is not listed in CISA KEV, so there is no signal of active exploitation; the vuln.today Decision label is this_month, consistent with a fix-promptly-but-not-emergency posture. A conflict exists in the metadata: the input Tags claim 'Information Disclosure', but both the CVSS vector (C:N) and the advisory ('No confidentiality or integrity impact was demonstrated') confirm this is purely a crash/DoS - the information-disclosure framing is unsupported. Overall: a legitimate availability bug worth patching, materially more urgent only where untrusted models are processed via a network-exposed service. |
| Exploit ScenarioDerived | An attacker submits a crafted ONNX model to a service or pipeline that runs shape inference on untrusted models, where the model contains an RNN/LSTM (opset 1-6) or GRU (opset 3-6) node whose first input X has a rank other than three, and the model still passes onnx.checker.check_model(). When the application calls onnx.shape_inference.infer_shapes(), RNNShapeInference_opset1_to_6() reads dim(0)/dim(1) out of bounds, producing a SIGSEGV that terminates the process (DoS). No weaponized public exploit is identified, but the fix's regression test publicly demonstrates the malformed model that triggers the condition; the attack vector is Local (AV:L) with low complexity and no privileges or user interaction once the model is processed. |
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's legacy shape-inference path allows an attacker-supplied model to crash a process that calls onnx.shape_inference.infer_shapes(). The vulnerable code, RNNShapeInference_opset1_to_6(), reads dim(0) and dim(1) from the first input of RNN/LSTM nodes (opsets 1-6) and GRU nodes (opsets 3-6) without verifying the tensor has rank three, so a malformed but checker-valid model triggers a protobuf repeated-field over-read and SIGSEGV. All ONNX releases through 1.21.0 are affected and the issue is fixed in 1.22.0; impact is limited to process termination (denial of service) with no demonstrated confidentiality or integrity effect, and no public exploit has been identified at time of analysis.
RemediationAI
Upgrade to ONNX 1.22.0 or later, which validates that the first input has rank three before touching its dimensions; the fix is in pull request https://github.com/onnx/onnx/pull/7879 and commit https://github.com/onnx/onnx/commit/92e541266af5dd38cfa48aeb92206f4268a066cd, and the vendor confirms the original malformed model now raises InferenceError on the published 1.23.2 wheel. Until upgrading, the practical compensating controls are to avoid calling onnx.shape_inference.infer_shapes() on untrusted or third-party models (side effect: no shape inference, so downstream tooling that depends on inferred shapes must be fed pre-validated models), to pre-screen models by checking that the first input of any RNN/LSTM node in opsets 1-6 or GRU node in opsets 3-6 has declared rank three and rejecting those that do not (side effect: custom validation logic parallel to the upstream fix, and models with unknown/dynamic rank may be rejected unnecessarily), or to run shape inference inside a disposable, memory- and restart-limited subprocess or container so a crash is contained (side effect: process isolation overhead and no protection for the parent workload's availability). Because the assessed vector is AV:L, applications that expose model processing over a network should recalculate an Environmental score with Modified Attack Vector set to Network, per the vendor advisory at https://github.com/onnx/onnx/security/advisories/GHSA-48m4-24cq-37qf.
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; its C++ shape-inference engine infers output shapes by walking graph nodes, and the legacy operator schemas for recurrent layers are handled by RNNShapeInference_opset1_to_6(). That function guarded only on the presence of an input shape (hasInputShape) and then unconditionally called dim(0) and dim(1) on it. Because protobuf represents a tensor shape as a repeated field of dimension entries, calling dim() on an index beyond dim_size() reads outside the intended array in release builds - the reported symptom was SIGSEGV, while sanitizer/debug builds abort on the protobuf bounds check. The root cause is CWE-125 (out-of-bounds read) stemming from a missing rank validation: the fix adds a dim_size() != 3 check that raises a shape-inference failure instead of indexing. The newer opset 7-13 and opset 14+ inference paths already enforced rank three and are unaffected, so the flaw is confined to the legacy RNN/LSTM opsets 1-6 and GRU opsets 3-6 schemas. The CPE cpe:2.3:a:onnx:onnx:*:*:*:*:*:*:*:* reflects that every published ONNX build before the fix carries the same code.
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 through a local library/file boundary (AV:L) with no privileges or interaction once ingested; impact is process crash only, so A:H and C:N/I:N.
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. Prior to 1.22.0, RNNShapeInference_opset1_to_6() processes malformed RNN and LSTM nodes from opsets 1 through 6 and GRU nodes from opsets 3 through 6 without verifying that the first input has rank three. The function accesses dim(0) and dim(1) on an undersized protobuf shape, which can read outside the intended repeated field and terminate an application when onnx.shape_inference.infer_shapes() processes an untrusted model that can pass onnx.checker.check_model(). This issue is fixed in version 1.22.0.
Blast Radius
ecosystem impact- 58 pypi packages depend on onnx (25 direct, 33 indirect)
Ecosystem-wide dependent count for version 1.22.0.
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.
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 ConvTranspose shape inference (convTransposeShapeInference and convTransposeShapeInference_op
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-110040
GHSA-48m4-24cq-37qf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB