Skip to content
OpenAdvisories
Low · 2.5 CVE-2021-29554 BIT-tensorflow-2021-29554EUVD-2021-0295GHSA-qg48-85hg-mqc5PYSEC-2021-191PYSEC-2021-482PYSEC-2021-680

Division by 0 in `DenseCountSparseOutput`

Published May 14, 2021 · Updated Aug 3, 2024 · Assigned by GitHub_M

Description

TensorFlow is an end-to-end open source platform for machine learning. An attacker can cause a denial of service via a FPE runtime error in `tf.raw_ops.DenseCountSparseOutput`. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/efff014f3b2d8ef6141da30c806faf141297eca1/tensorflow/core/kernels/count_ops.cc#L123-L127) computes a divisor value from user data but does not check that the result is 0 before doing the division. Since `data` is given by the `values` argument, `num_batch_elements` is 0. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, and TensorFlow 2.3.3, as these are also affected.

Affected products

VendorProductAffectedFixed
tensorflow tensorflow < 2.3.3, >= 2.4.0, < 2.4.2 —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI tensorflow >= 2.3.0, < 2.3.3 2.3.3 GHSA-qg48-85hg-mqc5
PyPI tensorflow >= 2.4.0, < 2.4.2 2.4.2 GHSA-qg48-85hg-mqc5
PyPI tensorflow < 2.1.4 · >= 2.2.0, < 2.2.3 · >= 2.3.0, < 2.3.3 · >= 2.4.0, < 2.4.2 2.1.4, 2.2.3, 2.3.3, 2.4.2 PYSEC-2021-191
PyPI tensorflow-cpu >= 2.3.0, < 2.3.3 2.3.3 GHSA-qg48-85hg-mqc5
PyPI tensorflow-cpu >= 2.4.0, < 2.4.2 2.4.2 GHSA-qg48-85hg-mqc5
PyPI tensorflow-cpu < 2.1.4 · >= 2.2.0, < 2.2.3 · >= 2.3.0, < 2.3.3 · >= 2.4.0, < 2.4.2 2.1.4, 2.2.3, 2.3.3, 2.4.2 PYSEC-2021-482
PyPI tensorflow-gpu >= 2.3.0, < 2.3.3 2.3.3 GHSA-qg48-85hg-mqc5
PyPI tensorflow-gpu >= 2.4.0, < 2.4.2 2.4.2 GHSA-qg48-85hg-mqc5
PyPI tensorflow-gpu < 2.1.4 · >= 2.2.0, < 2.2.3 · >= 2.3.0, < 2.3.3 · >= 2.4.0, < 2.4.2 2.1.4, 2.2.3, 2.3.3, 2.4.2 PYSEC-2021-680

References