CVE-2021-29539
Segfault in tf.raw_ops.ImmutableConst
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
2.5
Segfault in tf.raw_ops.ImmutableConst
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
CVE-2021-29539- CVSS 3.1
- 2.5 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-681
- Updated
- 2026-11-02
EUVDEUVD-2021-0280
2.5
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
EUVD-2021-0280- CVSS 3.1
- 2.5 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-g4h2-gqm3-c9wq
2.0
Segfault in tf.raw_ops.ImmutableConst
Impact
Calling 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.
>>> 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 for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-g4h2-gqm3-c9wq- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N - CVSS 3.1
- 2.5 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-681
- Updated
- 2026-11-02
NVD
2.5
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
CVE-2021-29539- CVSS 3.1
- 2.5 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 2.1 Low
AV:L/AC:L/Au:N/C:N/I:N/A:P - Weakness
- CWE-681
- Updated
- 2026-11-02
OSV
5.5
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
CVE-2021-29539- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-g4h2-gqm3-c9wq
2.0
Segfault in tf.raw_ops.ImmutableConst
Impact
Calling 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.
>>> 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 for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-g4h2-gqm3-c9wq- CVSS 4.0
- 2.0 Low
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N - CVSS 3.1
- 2.5 Low
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-681
- Updated
- 2026-11-02
Show 4 moreShow less
OSVBIT-tensorflow-2021-29539 No score
Segfault in tf.raw_ops.ImmutableConst
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
BIT-tensorflow-2021-29539- Updated
- 2026-11-02
OSVPYSEC-2021-176 No score
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
PYSEC-2021-176- Updated
- 2026-11-02
OSVPYSEC-2021-467 No score
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
PYSEC-2021-467- Updated
- 2026-11-02
OSVPYSEC-2021-665 No score
TensorFlow is an end-to-end open source platform for machine learning. 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. 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. If using tf.raw_ops.ImmutableConst in code, you can prevent the segfault by inserting a filter for the dtype argument.
- Record
PYSEC-2021-665- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tensorflowPyPI |
before 2.1.4 | 2.1.4 |
tensorflowPyPI |
2.2.0 up to 2.2.3 | 2.2.3 |
tensorflowPyPI |
2.3.0 up to 2.3.3 | 2.3.3 |
tensorflowPyPI |
2.4.0 up to 2.4.2 | 2.4.2 |
tensorflow-cpuPyPI |
before 2.1.4 | 2.1.4 |
tensorflow-cpuPyPI |
2.2.0 up to 2.2.3 | 2.2.3 |
tensorflow-cpuPyPI |
2.3.0 up to 2.3.3 | 2.3.3 |
tensorflow-cpuPyPI |
2.4.0 up to 2.4.2 | 2.4.2 |
tensorflow-gpuPyPI |
before 2.1.4 | 2.1.4 |
tensorflow-gpuPyPI |
2.2.0 up to 2.2.3 | 2.2.3 |
Show 18 moreShow less
| Package | Affected | Fixed |
|---|---|---|
tensorflow-gpuPyPI |
2.3.0 up to 2.3.3 | 2.3.3 |
tensorflow-gpuPyPI |
2.4.0 up to 2.4.2 | 2.4.2 |
tensorflowBitnami |
before 2.1.4, 2.2.0 up to 2.2.3, 2.3.0 up to 2.3.3, 2.4.0 up to 2.4.2 | 2.1.42.2.32.3.32.4.2 |
tensorflowPyPI |
before 2.1.4, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 35 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.15.01.15.21.15.31.15.41.15.51.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.02.0.02.0.12.0.22.0.32.0.42.1.02.1.12.1.22.1.3 |
2.1.4 |
tensorflowPyPI |
2.2.0 up to 2.2.3, plus listed versions 2.2.12.2.2 |
2.2.3 |
tensorflowPyPI |
2.3.0 up to 2.3.3, plus listed versions 2.3.12.3.2 |
2.3.3 |
tensorflowPyPI |
2.4.0 up to 2.4.2, plus listed versions 2.4.1 |
2.4.2 |
tensorflow-cpuPyPI |
before 2.1.4, plus listed versions 1.15.02.1.02.1.12.1.22.1.3 |
2.1.4 |
tensorflow-cpuPyPI |
2.2.0 up to 2.2.3, plus listed versions 2.2.12.2.2 |
2.2.3 |
tensorflow-cpuPyPI |
2.3.0 up to 2.3.3, plus listed versions 2.3.12.3.2 |
2.3.3 |
tensorflow-cpuPyPI |
2.4.0 up to 2.4.2, plus listed versions 2.4.1 |
2.4.2 |
tensorflow-gpuPyPI |
before 2.1.4, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 35 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.15.01.15.21.15.31.15.41.15.51.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.02.0.02.0.12.0.22.0.32.0.42.1.02.1.12.1.22.1.3 |
2.1.4 |
tensorflow-gpuPyPI |
2.2.0 up to 2.2.3, plus listed versions 2.2.12.2.2 |
2.2.3 |
tensorflow-gpuPyPI |
2.3.0 up to 2.3.3, plus listed versions 2.3.12.3.2 |
2.3.3 |
tensorflow-gpuPyPI |
2.4.0 up to 2.4.2, plus listed versions 2.4.1 |
2.4.2 |
tensorflowPyPI |
before 2.2.0rc0, 2.2.0 up to 2.3.0rc0, 2.3.0 up to 2.3.4, 2.4.0 up to 2.4.3, plus listed versions 0.12.00.12.0rc00.12.0rc10.12.11.0.0 Show 45 moreShow less1.0.11.1.01.1.0rc01.1.0rc11.1.0rc21.10.01.10.0rc01.10.0rc11.10.11.11.01.11.0rc01.11.0rc11.11.0rc21.12.01.12.0rc01.12.0rc11.12.0rc21.12.21.12.31.13.0rc01.13.0rc11.13.0rc21.13.11.13.21.14.01.14.0rc01.14.0rc11.15.01.15.0rc01.15.0rc11.15.0rc21.15.0rc31.15.21.15.31.15.41.15.51.2.01.2.0rc01.2.0rc11.2.0rc21.2.11.3.01.3.0rc01.3.0rc11.3.0rc2 |
2.2.0rc02.3.0rc02.3.42.4.3 |
tensorflow-cpuPyPI |
before 2.2.0rc0, 2.2.0 up to 2.3.0rc0, 2.3.0 up to 2.3.4, 2.4.0 up to 2.4.3, plus listed versions 1.15.02.1.02.1.12.1.22.1.3 Show 9 moreShow less2.1.42.2.12.2.22.2.32.3.12.3.22.3.32.4.12.4.2 |
2.2.0rc02.3.0rc02.3.42.4.3 |
tensorflow-gpuPyPI |
before 2.2.0rc0, 2.2.0 up to 2.3.0rc0, 2.3.0 up to 2.3.4, 2.4.0 up to 2.4.3, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 44 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.15.01.15.21.15.31.15.41.15.51.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.02.0.02.0.12.0.22.0.32.0.42.1.02.1.12.1.22.1.32.1.42.2.12.2.22.2.32.3.12.3.22.3.32.4.12.4.2 |
2.2.0rc02.3.0rc02.3.42.4.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2021-29539 is a low vulnerability (CVSS 2.5) in Google Tensorflow, published May 14, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.19%, the 8th percentile. Fixed in tensorflow 2.1.4.
References
github.com/tensorflow/tensorflow/security/advisories/GHSA-g4h2-gqm3-c9wq
github.com/tensorflow/tensorflow/commit/4f663d4b8f0bec1b48da6fa091a7d29609980fa4
nvd.nist.gov/vuln/detail/CVE-2021-29539
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-467.yaml
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-665.yaml
github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-176.yaml
github.com/advisories/GHSA-g4h2-gqm3-c9wq
github.com/tensorflow/tensorflow
Left out here: 49 versions. The JSON record has them.