Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

Skip to content
Check your stack
CVE-2026-115919medium6.2

ONNX: Out-of-Bounds Read in RNN/GRU/LSTM Shape Inference (Old Opsets, Missing Rank Check)

Impact

ONNX versions through 1.21.0 have an out-of-bounds read vulnerability in RNN/GRU/LSTM shape inference for opsets 1-6, allowing denial of service via a crafted model. The vulnerability requires local access to process a malicious model. The impact is limited to termination of the process.

Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.
Applies when

Exploitation does not require privileges or human interaction once the model is processed.

Affected packages

Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.

onnx PyPI
Affected range Recorded fix
Earlier releases before 1.22.0Ecosystem versions1.22.0

Version evidence: OSV · GHSA-48m4-24cq-37qf

View original version evidence (50 explicit versions)

Affected products

Vendor version evidence. Product records are separate from automatic dependency matching.

onnx · GitHub_M

onnx

1 range

Compare with this publisher’s ranges. This does not inspect your installation.

affected

< 1.22.0

unaffected

unknown

Other versions: unknown

Original source description

Summary

ONNX shape inference performed an out-of-bounds read when processing a malformed RNN, GRU, or LSTM node from opsets 1–6 whose first input had a rank other than three.

RNNShapeInference_opset1_to_6() checked whether the input shape was present but accessed dim(0) and dim(1) without first checking its rank. A crafted model could therefore terminate a process that called onnx.shape_inference.infer_shapes(). The model passed onnx.checker.check_model() before reaching the vulnerable path.

Technical details

The vulnerable code read dimensions unconditionally:

if (hasInputShape(ctx, 0)) {
  const auto& first_input_shape = getInputShape(ctx, 0);
  seq_length = first_input_shape.dim(0);
  batch_size = first_input_shape.dim(1);
}

For an undersized shape, protobuf's repeated-field access read outside the intended array in release builds. The observed result was SIGSEGV; sanitizer and debug builds terminated on a protobuf bounds check.

The newer opset 7–13 and opset 14+ inference paths already required the first input to have rank three and were not affected.

Impact

An application that performs shape inference on an untrusted model can be terminated, causing denial of service. Exploitation does not require privileges or human interaction once the model is processed. No confidentiality or integrity impact was demonstrated.

Affected versions

  • Affected: ONNX through 1.21.0
  • Patched: ONNX 1.22.0

The vulnerable schemas are limited to RNN and LSTM opsets 1–6 and GRU opsets 3–6.

Remediation

Upgrade to ONNX 1.22.0 or later. The fix validates that the first input has rank three before accessing its dimensions.

The original malformed model was also re-tested against the published ONNX 1.23.2 wheel and correctly raises InferenceError.

Severity

The 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.

Inside the record

Evidence available

Package identity
Version evidence
Remediation guidance · not supplied
Weakness classification
Additional publishers

Describes the evidence in this view, not whether the product is safe.

Original records

CVE-2026-115919

View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.

cve.new JSON →

Underlying weaknesses

The source’s classification of what caused the vulnerability.

CWE-125 ↗

CWE-125: Out-of-bounds Read

GitHub_M

Related →
Contributing organizations · 2
GitHub_M

Assigning organization

2026-10-26
CISA-ADP

Additional data publisher

2026-10-26

What changed

Follow changes
No substantive changes have been recorded here yet. History starts when cve.new observes a change after tracking is enabled; earlier edits are not reconstructed.

Large field values are marked as truncated previews. Original source snapshots remain retained.

References

6 sources