GitHub Advisoryadvisory · PyPI
GHSA-9c8h-2mv3-49ww Division by 0 in most convolution operators
MEDIUM
Official page ↗
- Aliases
- CVE-2021-37675
- Ecosystem
- PyPI
- Packages
- tensorflow, tensorflow-cpu, tensorflow-gpu
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-369
- Reviewed
- 2021-08-24
Affected packages
• PyPI tensorflow: < 2.3.4 → fixed in 2.3.4
• PyPI tensorflow: >= 2.4.0, < 2.4.3 → fixed in 2.4.3
• PyPI tensorflow: >= 2.5.0, < 2.5.1 → fixed in 2.5.1
• PyPI tensorflow-cpu: < 2.3.4 → fixed in 2.3.4
• PyPI tensorflow-cpu: >= 2.4.0, < 2.4.3 → fixed in 2.4.3
• PyPI tensorflow-cpu: >= 2.5.0, < 2.5.1 → fixed in 2.5.1
• PyPI tensorflow-gpu: < 2.3.4 → fixed in 2.3.4
• PyPI tensorflow-gpu: >= 2.4.0, < 2.4.3 → fixed in 2.4.3
• PyPI tensorflow-gpu: >= 2.5.0, < 2.5.1 → fixed in 2.5.1
Description
Impact
Most implementations of convolution operators in TensorFlow are affected by a division by 0 vulnerability where an attacker can trigger a denial of service via a crash:
```python
import tensorflow as tf
tf.compat.v1.disable_v2_behavior()
tf.raw_ops.Conv2D(
input = tf.constant([], shape=[0, 0, 0, 0], dtype=tf.float32),
filter = tf.constant([], shape=[0, 0, 0, 0], dtype=tf.float32),
strides = [1, 1, 1, 1],
padding = "SAME")
```
The shape inference implementation is missing several validations before doing divisions and modulo operations.
Patches
We have patched the issue in GitHub commit 8a793b5d7f59e37ac7f3cd0954a750a2fe76bad4.
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.
For more information
Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
Attribution
This vulnerability has been reported by Yakun Zhang of Baidu Security.
Related
Alias · CVE (1)
- CVE-2021-37675 TensorFlow is an end-to-end open source platform for machine learning. vulnerability
Weakness · CWE (1)
- CWE-369 Divide By Zero weakness
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-9c8h-2mv3-49ww web
- https://nvd.nist.gov/vuln/detail/CVE-2021-37675 advisory
- https://github.com/tensorflow/tensorflow/commit/8a793b5d7f59e37ac7f3cd0954a750a2fe76bad4 web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-588.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-786.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-297.yaml web
- https://github.com/tensorflow/tensorflow web