A flaw in the ONNX shape-inference code for Scan operators (versions 1.4.0 to before 1.22.0) lets a crafted model crash or disrupt the process that loads it, either through a missing num_scan_inputs attribute (null pointer dereference) or a negative value that becomes an oversized allocation. The impact is limited to availability: there is no confidentiality or integrity impact, the attack is local, and a negative-value model can still pass onnx.checker.check_model(), so the standard validation step will not catch it. No EPSS score, KEV listing, public exploit or Nuclei template exists, so exploitation likelihood looks low today. However, onnx has 1,124 downstream dependents and 19 other CVEs, so model-ingestion services that accept third-party models (model hubs, conversion services, CI validation jobs) are the realistic exposure. Upgrade to onnx 1.22.0 and run untrusted model loading and shape inference in isolated, resource-limited workers.
What is the risk?
Medium (CVSS 6.2), availability only. Exploitation needs a crafted ONNX model to reach shape inference, with no privileges or user interaction beyond loading the file. Risk rises for services that automatically ingest untrusted models, and is low for pipelines that only load vetted, internally produced models. No evidence of active exploitation, no public exploit, and no EPSS data (as of publication).
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| ONNX | pip | >= 1.4.0, <= 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 (fix in PR 7916 and commit dd6bc92). 2) Treat models from external sources as untrusted: run loading and shape inference in sandboxed, memory- and time-limited worker processes with automatic restart. 3) Do not rely on onnx.checker.check_model() alone as a safety gate, since it can pass a malicious model. 4) Restrict who can submit models to ingestion services and require provenance or signing for third-party models. 5) Monitor for repeated crashes, segfaults or OOM kills in model-processing workers, and inventory onnx versions via SBOM or pip freeze.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-115921?
A flaw in the ONNX shape-inference code for Scan operators (versions 1.4.0 to before 1.22.0) lets a crafted model crash or disrupt the process that loads it, either through a missing num_scan_inputs attribute (null pointer dereference) or a negative value that becomes an oversized allocation. The impact is limited to availability: there is no confidentiality or integrity impact, the attack is local, and a negative-value model can still pass onnx.checker.check_model(), so the standard validation step will not catch it. No EPSS score, KEV listing, public exploit or Nuclei template exists, so exploitation likelihood looks low today. However, onnx has 1,124 downstream dependents and 19 other CVEs, so model-ingestion services that accept third-party models (model hubs, conversion services, CI validation jobs) are the realistic exposure. Upgrade to onnx 1.22.0 and run untrusted model loading and shape inference in isolated, resource-limited workers.
Is CVE-2026-115921 actively exploited?
No confirmed active exploitation of CVE-2026-115921 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-115921?
1) Upgrade onnx to 1.22.0 or later (fix in PR 7916 and commit dd6bc92). 2) Treat models from external sources as untrusted: run loading and shape inference in sandboxed, memory- and time-limited worker processes with automatic restart. 3) Do not rely on onnx.checker.check_model() alone as a safety gate, since it can pass a malicious model. 4) Restrict who can submit models to ingestion services and require provenance or signing for third-party models. 5) Monitor for repeated crashes, segfaults or OOM kills in model-processing workers, and inventory onnx versions via SBOM or pip freeze.
What systems are affected by CVE-2026-115921?
This vulnerability affects the following AI/ML architecture patterns: model conversion pipelines, model serving, model registries and ingestion services, CI/CD model validation, training pipelines.
What is the CVSS score for CVE-2026-115921?
CVE-2026-115921 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. From 1.4.0 until 1.22.0, ScanInferenceFunction, ScanInferenceFunction_opset8, and ScanInferenceFunction_opset9 do not safely validate the required num_scan_inputs attribute. A missing attribute is dereferenced as a null pointer, while a negative value is converted to size_t and can reach an exceptional oversized allocation path. An untrusted model can therefore terminate or disrupt shape inference, including a negative-value model that can pass onnx.checker.check_model(). This issue is fixed in version 1.22.0.
Exploitation Scenario
An attacker publishes a seemingly benign ONNX model to a public hub or submits it to a company's model-intake service. The model contains a Scan node with a missing or negative num_scan_inputs attribute and passes onnx.checker.check_model(). When the platform runs shape inference during import or conversion, the worker crashes with a null dereference or fails on a huge allocation. Repeated submissions keep the pipeline down or exhaust resources on shared workers.
Weaknesses (CWE)
CWE-195Signed to Unsigned Conversion ErrorPrimaryCWE-195Signed to Unsigned Conversion ErrorPrimaryCWE-476NULL Pointer DereferencePrimaryCWE-476NULL Pointer DereferencePrimaryCWE-195Signed to Unsigned Conversion ErrorCWE-476NULL Pointer DereferenceCWE-195 — Signed to Unsigned Conversion Error: The product uses a signed primitive and performs a cast to an unsigned primitive, which can produce an unexpected value if the value of the signed primitive can not be represented using an unsigned primitive.
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/dd6bc92ea39fd2274fd671f0734b0b8b558356f5x_refsource_MISC
- github.com/onnx/onnx/pull/7916x_refsource_MISC
- github.com/onnx/onnx/releases/tag/v1.22.0x_refsource_MISC
- github.com/onnx/onnx/security/advisories/GHSA-m4pr-6v3c-6fgrx_refsource_CONFIRM
- github.com/advisories/GHSA-m4pr-6v3c-6fgr
- nvd.nist.gov/vuln/detail/CVE-2026-115921
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