TensorFlow is an end-to-end open source platform for machine learning. In affected versions the shape inference code for tf.raw_ops.Dequantize
has a vulnerability that could trigger a denial of service via a segfault if an attacker provides invalid arguments. The shape inference implementation uses axis
to select between two different values for minmax_rank
which is then used to retrieve tensor dimensions. However, code assumes that axis
can be either -1
or a value greater than -1
, with no validation for the other values. We have patched the issue in GitHub commit da857cfa0fde8f79ad0afdbc94e88b5d4bbec764. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
The product receives input that is expected to specify a quantity (such as size or length), but it does not validate or incorrectly validates that the quantity has the required properties.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Tensorflow | 2.3.0 (including) | 2.3.4 (excluding) | |
Tensorflow | 2.4.0 (including) | 2.4.3 (excluding) | |
Tensorflow | 2.5.0 (including) | 2.5.0 (including) | |
Tensorflow | 2.6.0-rc0 (including) | 2.6.0-rc0 (including) | |
Tensorflow | 2.6.0-rc1 (including) | 2.6.0-rc1 (including) | |
Tensorflow | 2.6.0-rc2 (including) | 2.6.0-rc2 (including) |
Specified quantities include size, length, frequency, price, rate, number of operations, time, and others. Code may rely on specified quantities to allocate resources, perform calculations, control iteration, etc. When the quantity is not properly validated, then attackers can specify malicious quantities to cause excessive resource allocation, trigger unexpected failures, enable buffer overflows, etc.