Description
TensorFlow is an end-to-end open source platform for machine learning. An attacker can trigger a denial of service via a `CHECK`-fail in `tf.raw_ops.QuantizeAndDequantizeV4Grad`. This is because the implementation does not validate the rank of the `input_*` tensors. In turn, this results in the tensors being passes as they are to `QuantizeAndDequantizePerChannelGradientImpl`. However, the `vec<T>` method, requires the rank to 1 and triggers a `CHECK` failure otherwise. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2 as this is the only other affected version.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| tensorflow | tensorflow | >= 2.4.0, < 2.4.2 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | tensorflow | >= 2.4.0, < 2.4.2 | 2.4.2 | GHSA-6g85-3hm8-83f9 |
| PyPI | tensorflow | < 2.2.0rc0 · >= 2.2.0, < 2.3.0rc0 · >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 | 2.2.0rc0, 2.3.0rc0, 2.3.4, 2.4.3 | PYSEC-2021-181 |
| PyPI | tensorflow-cpu | >= 2.4.0, < 2.4.2 | 2.4.2 | GHSA-6g85-3hm8-83f9 |
| PyPI | tensorflow-cpu | < 2.2.0rc0 · >= 2.2.0, < 2.3.0rc0 · >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 | 2.2.0rc0, 2.3.0rc0, 2.3.4, 2.4.3 | PYSEC-2021-472 |
| PyPI | tensorflow-gpu | >= 2.4.0, < 2.4.2 | 2.4.2 | GHSA-6g85-3hm8-83f9 |
| PyPI | tensorflow-gpu | < 2.2.0rc0 · >= 2.2.0, < 2.3.0rc0 · >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 | 2.2.0rc0, 2.3.0rc0, 2.3.4, 2.4.3 | PYSEC-2021-670 |
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-6g85-3hm8-83f9
- https://github.com/tensorflow/tensorflow/commit/20431e9044cf2ad3c0323c34888b192f3289af6b
- https://github.com/tensorflow/tensorflow/blob/95078c145b5a7a43ee046144005f733092756ab5/tensorflow/core/kernels/quantize_and_dequantize_op.cc#L162-L163
- https://github.com/tensorflow/tensorflow/blob/95078c145b5a7a43ee046144005f733092756ab5/tensorflow/core/kernels/quantize_and_dequantize_op.h#L295-L306