ONNX versions before 1.22.0 let a tiny crafted model file declare huge tensor dimensions for 2-bit and 4-bit data types, and the library then allocates memory for the declared size without checking the payload, so a few bytes can exhaust RAM and crash the process. The CVSS is a moderate 6.2 because it needs local file processing and only affects availability, with no data exposure or code execution. There is no KEV listing, no public exploit, no Nuclei template and no EPSS score yet, so exploitation is not currently observed. However, the package has 1,124 downstream dependents and the flaw is trivial to trigger wherever untrusted models are loaded, such as model hubs, upload-based MLOps platforms and CI validation jobs. Upgrade onnx to 1.22.0 or later, and in the meantime avoid converting untrusted quantized models and run model parsing under memory limits.
What is the risk?
Medium overall. Exploitation is low-complexity and needs no privileges or user interaction beyond getting a crafted model processed by to_array() or ReferenceEvaluator. Impact is limited to availability (memory exhaustion, process crash or OOM kill). The CVSS vector is local, but in practice the exposure is higher for services that ingest user-supplied or third-party ONNX models automatically, such as model conversion, scanning or validation pipelines. No active exploitation, public exploit or KEV listing is known, and EPSS data is not available. The package has 19 other CVEs, an OpenSSF score of 8.3/10 and an active maintenance cadence, which lowers long-term risk.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| ONNX | pip | <= 1.21.0 | 1.22.0 |
Do you use ONNX? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade onnx to 1.22.0 or later (fixes in PRs 8033, 8038 and 8066). 2) Until patched, do not call to_array() or use ReferenceEvaluator on untrusted models that contain 2-bit or 4-bit tensor types. 3) Run model parsing and conversion in isolated workers or containers with memory limits (cgroup or ulimit) and automatic restart. 4) Validate TensorProto.dims against raw_data length before processing untrusted models. 5) Inventory with pip list or SBOM tooling for onnx versions below 1.22.0, including transitive dependencies. 6) Monitor for OOM kills and abnormal memory spikes in model ingestion services.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-115922?
ONNX versions before 1.22.0 let a tiny crafted model file declare huge tensor dimensions for 2-bit and 4-bit data types, and the library then allocates memory for the declared size without checking the payload, so a few bytes can exhaust RAM and crash the process. The CVSS is a moderate 6.2 because it needs local file processing and only affects availability, with no data exposure or code execution. There is no KEV listing, no public exploit, no Nuclei template and no EPSS score yet, so exploitation is not currently observed. However, the package has 1,124 downstream dependents and the flaw is trivial to trigger wherever untrusted models are loaded, such as model hubs, upload-based MLOps platforms and CI validation jobs. Upgrade onnx to 1.22.0 or later, and in the meantime avoid converting untrusted quantized models and run model parsing under memory limits.
Is CVE-2026-115922 actively exploited?
No confirmed active exploitation of CVE-2026-115922 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-115922?
1) Upgrade onnx to 1.22.0 or later (fixes in PRs 8033, 8038 and 8066). 2) Until patched, do not call to_array() or use ReferenceEvaluator on untrusted models that contain 2-bit or 4-bit tensor types. 3) Run model parsing and conversion in isolated workers or containers with memory limits (cgroup or ulimit) and automatic restart. 4) Validate TensorProto.dims against raw_data length before processing untrusted models. 5) Inventory with pip list or SBOM tooling for onnx versions below 1.22.0, including transitive dependencies. 6) Monitor for OOM kills and abnormal memory spikes in model ingestion services.
What systems are affected by CVE-2026-115922?
This vulnerability affects the following AI/ML architecture patterns: model conversion pipelines, model registries and hubs, MLOps validation and CI pipelines, model scanning tools, notebook and research environments.
What is the CVSS score for CVE-2026-115922?
CVE-2026-115922 has a CVSS v3.1 base score of 6.2 (MEDIUM). The EPSS exploitation probability is 0.13%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.003ModelAML.T0011.000Unsafe AI ArtifactsAML.T0029Denial of AI ServiceCompliance Controls Affected
What are the technical details?
Original Advisory
Open Neural Network Exchange (ONNX) is an open standard for machine learning interoperability. Prior to 1.22.0, _unpack_2bit() and _unpack_4bit() resize unpacked arrays according to attacker-controlled TensorProto.dims without verifying that raw_data or int32_data encodes the declared number of elements. Materializing an untrusted UINT2, INT2, UINT4, INT4, or FLOAT4E2M1 tensor through onnx.numpy_helper.to_array() or onnx.reference.ReferenceEvaluator can therefore expand a small packed payload into a disproportionately large allocation and exhaust memory. This issue is fixed in version 1.22.0.
Exploitation Scenario
An attacker uploads a crafted ONNX model to a public model hub or a company's internal model registry. The model contains a UINT4 tensor with a few bytes of raw_data but dims declaring billions of elements. When the platform's automated validation or conversion job calls onnx.numpy_helper.to_array(), the unpacking routine resizes the array to the declared size, memory is exhausted and the worker is OOM-killed. The attacker repeats the upload to keep the ingestion pipeline down or to degrade other services on the shared host.
Weaknesses (CWE)
CWE-789Memory Allocation with Excessive Size ValuePrimaryCWE-789Memory Allocation with Excessive Size ValuePrimaryCWE-789Memory Allocation with Excessive Size ValueCWE-789 — Memory Allocation with Excessive Size Value: The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated.
- [Implementation, Architecture and Design] Perform adequate input validation against any value that influences the amount of memory that is allocated. Define an appropriate strategy for handling requests that exceed the limit, and consider supporting a configuration option so that the administrator can extend the amount of memory to be used if necessary.
- [Operation] Run your program using system-provided resource limits for memory. This might still cause the program to crash or exit, but the impact to the rest of the system will be minimized.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
- github.com/onnx/onnx/commit/05c1bc3bceceb8d3cf11e9e7fc7f19f971c44988x_refsource_MISC
- github.com/onnx/onnx/commit/8de2cf6aa47928e6515ac6d9e1a8b4758886a7dfx_refsource_MISC
- github.com/onnx/onnx/commit/dce5876d6cc6cc30157af7d26a752ef44976da8ex_refsource_MISC
- github.com/onnx/onnx/pull/8033x_refsource_MISC
- github.com/onnx/onnx/pull/8038x_refsource_MISC
- github.com/onnx/onnx/pull/8066x_refsource_MISC
- github.com/onnx/onnx/releases/tag/v1.22.0x_refsource_MISC
- github.com/onnx/onnx/security/advisories/GHSA-q69g-f4f5-v8m7x_refsource_CONFIRM
- github.com/advisories/GHSA-q69g-f4f5-v8m7
- nvd.nist.gov/vuln/detail/CVE-2026-115922
Timeline
Related Vulnerabilities
CVE-2026-285009.1onnx: Integrity Verification bypass enables tampering
Same package: onnxCVE-2024-51878.8ONNX: path traversal in model download enables RCE
Same package: onnxCVE-2026-274898.6ONNX: symlink path traversal allows arbitrary file read
Same package: onnxCVE-2026-344458.6ONNX: property overwrite via crafted model file
Same package: onnxCVE-2026-1159248.6Rembg: unauthenticated path traversal leaks files
Same package: onnx