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.
{
"binaries": [
{
"binary_name": "libonnx-testdata",
"binary_version": "1.7.0+dfsg-3ubuntu2"
},
{
"binary_name": "libonnx1",
"binary_version": "1.7.0+dfsg-3ubuntu2"
},
{
"binary_name": "libonnxifi",
"binary_version": "1.7.0+dfsg-3ubuntu2"
},
{
"binary_name": "python3-onnx",
"binary_version": "1.7.0+dfsg-3ubuntu2"
}
]
}