CVE-2021-29539
Segfault in tf.raw_ops.ImmutableConst
Impact
### Impact Calling [`tf.raw_ops.ImmutableConst`](https://www.tensorflow.org/api_docs/python/tf/raw_ops/ImmutableConst) with a `dtype` of `tf.resource` or `tf.variant` results in a segfault in the implementation as code assumes that the tensor contents are pure scalars. ```python >>> import tensorflow as tf >>> tf.raw_ops.ImmutableConst(dtype=tf.resource, shape=[], memory_region_name="/tmp/test.txt") ... Segmentation fault ``` ### Patches We have patched the issue in 4f663d4b8f0bec1b48da6fa091a7d29609980fa4 and will release TensorFlow 2.5.0 containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved. ### Workarounds If using `tf.raw_ops.ImmutableConst` in code, you can prevent the segfault by inserting a filter for the `dtype` argument. ### For more information Please consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| pip | tensorflow | < 2.1.4 | 2.1.4 |
| pip | tensorflow-cpu | < 2.1.4 | 2.1.4 |
| pip | tensorflow-gpu | < 2.1.4 | 2.1.4 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Tensorflow | before 2.1.4 from 2.2.0 before 2.2.3 from 2.3.0 before 2.3.3 from 2.4.0 before 2.4.2 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/tensorflow/tensorflow/commit/4f663d4b8f0bec1b48da6fa091a7d29609980fa4
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-g4h2-gqm3-c9wq
- https://github.com/advisories/GHSA-g4h2-gqm3-c9wq
- https://nvd.nist.gov/vuln/detail/CVE-2021-29539
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-467.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-665.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-176.yaml