CVE-2020-5215
Segmentation faultin TensorFlow when converting a Python string to tf.float16
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
5.0
Segmentation faultin TensorFlow when converting a Python string to tf.float16
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
CVE-2020-5215- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L - Weakness
- CWE-754
- Updated
- 2026-11-02
EUVDEUVD-2020-0219
5.0
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
EUVD-2020-0219- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-977j-xj7q-2jr9
1.0
Segmentation faultin TensorFlow when converting a Python string to `tf.float16`
Impact
Converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode.
This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value.
Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions.
This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled.
Patches
We have patched the vulnerability in GitHub commit 5ac1b9.
We are additionally releasing TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched.
TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected.
We encourage users to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
For more information
Please consult SECURITY.md for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-977j-xj7q-2jr9- CVSS 4.0
- 1.0 Low
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L - CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L - Weakness
- CWE-754
- Updated
- 2026-11-02
NVD
5.0
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
CVE-2020-5215- CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 4.3 Medium
AV:N/AC:M/Au:N/C:N/I:N/A:P - Weakness
- CWE-754, CWE-20
- Updated
- 2026-11-02
OSV
7.5
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
CVE-2020-5215- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-977j-xj7q-2jr9
1.0
Segmentation faultin TensorFlow when converting a Python string to `tf.float16`
Impact
Converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode.
This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value.
Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions.
This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled.
Patches
We have patched the vulnerability in GitHub commit 5ac1b9.
We are additionally releasing TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched.
TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected.
We encourage users to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
For more information
Please consult SECURITY.md for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-977j-xj7q-2jr9- CVSS 4.0
- 1.0 Low
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:L/VI:L/VA:L/SC:L/SI:L/SA:L - CVSS 3.1
- 5.0 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L - Weakness
- CWE-754
- Updated
- 2026-11-02
Show 4 moreShow less
OSVBIT-tensorflow-2020-5215 No score
Segmentation faultin TensorFlow when converting a Python string to tf.float16
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
BIT-tensorflow-2020-5215- Updated
- 2026-11-02
OSVPYSEC-2020-258 No score
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
PYSEC-2020-258- Updated
- 2026-11-02
OSVPYSEC-2020-303 No score
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
PYSEC-2020-303- Updated
- 2026-11-02
OSVPYSEC-2020-338 No score
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. TensorFlow 2.1.0 was released after we fixed the issue, thus it is not affected. Users are encouraged to switch to TensorFlow 1.15.1, 2.0.1 or 2.1.0.
- Record
PYSEC-2020-338- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tensorflowPyPI |
before 1.15.2 | 1.15.2 |
tensorflowPyPI |
2.0.0 to 2.0.0 | 2.0.1 |
tensorflow-cpuPyPI |
before 1.15.2 | 1.15.2 |
tensorflow-cpuPyPI |
2.0.0 to 2.0.0 | 2.0.1 |
tensorflow-gpuPyPI |
before 1.15.2 | 1.15.2 |
tensorflow-gpuPyPI |
2.0.0 to 2.0.0 | 2.0.1 |
tensorflowBitnami |
before 1.15.2, 2.0.0 up to 2.0.1 | 1.15.22.0.1 |
tensorflowPyPI |
before 1.15.2, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 22 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.15.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.0 |
1.15.2 |
tensorflowPyPI |
2.0.0 up to 2.0.1 | 2.0.1 |
tensorflow-cpuPyPI |
before 1.15.2, plus listed versions 1.15.0 |
1.15.2 |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
tensorflow-cpuPyPI |
2.0.0 up to 2.0.1 | 2.0.1 |
tensorflow-gpuPyPI |
before 1.15.2, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 22 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.15.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.0 |
1.15.2 |
tensorflow-gpuPyPI |
2.0.0 up to 2.0.1 | 2.0.1 |
tensorflowPyPI |
before 1.15.2, 2.0.0 up to 2.0.1, 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.2.01.2.0rc01.2.0rc11.2.0rc21.2.11.3.01.3.0rc01.3.0rc11.3.0rc21.4.01.4.0rc01.4.0rc11.4.1 |
1.15.22.0.1 |
tensorflow-cpuPyPI |
before 1.15.2, 2.0.0 up to 2.0.1, plus listed versions 1.15.0 |
1.15.22.0.1 |
tensorflow-gpuPyPI |
before 1.15.2, 2.0.0 up to 2.0.1, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 22 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.15.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.0 |
1.15.22.0.1 |
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-2020-5215 is a medium vulnerability (CVSS 5.0) in Google Tensorflow, published January 28, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.59%, the 48th percentile. Fixed in tensorflow 1.15.2.
References
github.com/tensorflow/tensorflow/security/advisories/GHSA-977j-xj7q-2jr9
github.com/tensorflow/tensorflow/commit/5ac1b9e24ff6afc465756edf845d2e9660bd34bf
github.com/tensorflow/tensorflow/releases/tag/v1.15.2
github.com/tensorflow/tensorflow/releases/tag/v2.0.1
nvd.nist.gov/vuln/detail/CVE-2020-5215
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-303.yaml
Left out here: 18 versions. The JSON record has them.