Vulnerability · Published May 14, 2021 · Assigned by GitHub_M
CVE-2021-29554Division by 0 in `DenseCountSparseOutput`
Low 2.5
In plain English
A low-severity security flaw in tensorflow from tensorflow. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 9% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official 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 packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | tensorflow | 2.1.4, 2.2.3, 2.3.3, 2.4.2 | PYSEC-2021-191 |
| PyPI | tensorflow | 2.3.3 | GHSA-qg48-85hg-mqc5 |
| PyPI | tensorflow | 2.4.2 | GHSA-qg48-85hg-mqc5 |
| PyPI | tensorflow-cpu | 2.1.4, 2.2.3, 2.3.3, 2.4.2 | PYSEC-2021-482 |
| PyPI | tensorflow-cpu | 2.4.2 | GHSA-qg48-85hg-mqc5 |
| PyPI | tensorflow-cpu | 2.3.3 | GHSA-qg48-85hg-mqc5 |
| PyPI | tensorflow-gpu | 2.1.4, 2.2.3, 2.3.3, 2.4.2 | PYSEC-2021-680 |
| PyPI | tensorflow-gpu | 2.3.3 | GHSA-qg48-85hg-mqc5 |
| PyPI | tensorflow-gpu | 2.4.2 | GHSA-qg48-85hg-mqc5 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| tensorflow | tensorflow | < 2.3.3>= 2.4.0, < 2.4.2 |
Weakness: CWE-369 · Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L