GitHub Advisoryadvisory · PyPI
GHSA-ph87-fvjr-v33w CHECK-fail in `tf.raw_ops.RFFT`
LOW
Official page ↗
- Aliases
- CVE-2021-29563
- Ecosystem
- PyPI
- Packages
- tensorflow, tensorflow-cpu, tensorflow-gpu
- Severity
- Low
- CVSS vector
- CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
- Weaknesses
- CWE-617
- Reviewed
- 2021-05-18
Affected packages
• PyPI tensorflow: < 2.1.4 → fixed in 2.1.4
• PyPI tensorflow: >= 2.2.0, < 2.2.3 → fixed in 2.2.3
• PyPI tensorflow: >= 2.3.0, < 2.3.3 → fixed in 2.3.3
• PyPI tensorflow: >= 2.4.0, < 2.4.2 → fixed in 2.4.2
• PyPI tensorflow-cpu: < 2.1.4 → fixed in 2.1.4
• PyPI tensorflow-cpu: >= 2.2.0, < 2.2.3 → fixed in 2.2.3
• PyPI tensorflow-cpu: >= 2.3.0, < 2.3.3 → fixed in 2.3.3
• PyPI tensorflow-cpu: >= 2.4.0, < 2.4.2 → fixed in 2.4.2
• PyPI tensorflow-gpu: < 2.1.4 → fixed in 2.1.4
• PyPI tensorflow-gpu: >= 2.2.0, < 2.2.3 → fixed in 2.2.3
• PyPI tensorflow-gpu: >= 2.3.0, < 2.3.3 → fixed in 2.3.3
• PyPI tensorflow-gpu: >= 2.4.0, < 2.4.2 → fixed in 2.4.2
Description
Impact
An attacker can cause a denial of service by exploiting a `CHECK`-failure coming from the implementation of `tf.raw_ops.RFFT`:
```python
import tensorflow as tf
inputs = tf.constant([1], shape=[1], dtype=tf.float32)
fft_length = tf.constant([0], shape=[1], dtype=tf.int32)
tf.raw_ops.RFFT(input=inputs, fft_length=fft_length)
```
The above example causes Eigen code to operate on an empty matrix. This triggers on an assertion and causes program termination.
Patches
We have patched the issue in GitHub commit 31bd5026304677faa8a0b77602c6154171b9aec1.
The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.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 and Ying Wang of Baidu X-Team.
Related
Alias · CVE (1)
- CVE-2021-29563 TensorFlow is an end-to-end open source platform for machine learning. vulnerability
Weakness · CWE (1)
- CWE-617 Reachable Assertion weakness
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-ph87-fvjr-v33w web
- https://nvd.nist.gov/vuln/detail/CVE-2021-29563 advisory
- https://github.com/tensorflow/tensorflow/commit/31bd5026304677faa8a0b77602c6154171b9aec1 web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-491.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-689.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-200.yaml web
- https://github.com/tensorflow/tensorflow package