Description
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.
References8
- github.com/onnx/onnx/commit/05c1bc3bceceb8d3cf11e9e7fc7f19f971c…
- github.com/onnx/onnx/commit/8de2cf6aa47928e6515ac6d9e1a8b475888…
- github.com/onnx/onnx/commit/dce5876d6cc6cc30157af7d26a752ef4497…
- github.com/onnx/onnx/pull/8033
- github.com/onnx/onnx/pull/8038
- github.com/onnx/onnx/pull/8066
- github.com/onnx/onnx/releases/tag/v1.22.0
- github.com/onnx/onnx/security/advisories/GHSA-q69g-f4f5-v8m7
Metrics
- CVSS 3.1
-
6.2
MEDIUM
Score source: CNA
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - EPSS — exploit probability
- 0% percentile: 3 · as of 8 November 2026
- CWE
- CWE-789
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.