PyPI: tensorflow
CVE-2021-37692
Safety vulnerability ID: SFTY-20210812-59349
Safety legacy ID: pyup.io-41168
Tensorflow versions 2.5.1 and 2.6.0 include a fix for CVE-2021-37692: In affected versions under certain conditions, Go code can trigger a segfault in string deallocation. For string tensors, "C.TF_TString_Dealloc" is called during garbage collection within a finalizer function. However, tensor structure isn't checked until encoding to avoid a performance penalty. The current method for dealloc assumes that encoding succeeded, but segfaults when a string tensor is garbage collected whose encoding failed (e.g., due to mismatched dimensions). To fix this, the call to set the finalizer function is deferred until "NewTensor" returns and, if encoding failed for a string tensor, deallocs are determined based on bytes written. The Tensorflow team has patched the issue in GitHub commit: https://github.com/tensorflow/tensorflow/commit/8721ba96e5760c229217b594f6d2ba332beedf22 https://github.com/tensorflow/tensorflow/pull/50508 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-cmgw-8vpc-rc59
Overview
Segfault on strings tensors with mistmatched dimensions, due to Go code
Advisory
Tensorflow versions 2.5.1 and 2.6.0 include a fix for CVE-2021-37692: In affected versions under certain conditions, Go code can trigger a segfault in string deallocation. For string tensors, "C.TF_TString_Dealloc" is called during garbage collection within a finalizer function. However, tensor structure isn't checked until encoding to avoid a performance penalty. The current method for dealloc assumes that encoding succeeded, but segfaults when a string tensor is garbage collected whose encoding failed (e.g., due to mismatched dimensions). To fix this, the call to set the finalizer function is deferred until "NewTensor" returns and, if encoding failed for a string tensor, deallocs are determined based on bytes written. The Tensorflow team has patched the issue in GitHub commit: https://github.com/tensorflow/tensorflow/commit/8721ba96e5760c229217b594f6d2ba332beedf22 https://github.com/tensorflow/tensorflow/pull/50508 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-cmgw-8vpc-rc59
Affected Package
Also affects
---
How to Fix
Mitigation and Workarounds
---
Vulnerable Functions
Functions linked to known vulnerabilities.
References
- https://getsafety.com/vulnerabilities/SFTY-20210812-59349/CVE-2021-37692
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-cmgw-8vpc-rc59
- https://nvd.nist.gov/vuln/detail/CVE-2021-37692
- https://github.com/tensorflow/tensorflow/pull/50508
- https://github.com/tensorflow/tensorflow/commit/8721ba96e5760c229217b594f6d2ba332beedf22
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-605.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-803.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-314.yaml
- https://github.com/advisories/GHSA-cmgw-8vpc-rc59
Verified by Safety
Our Cybersecurity Intelligence Team reviewed this vulnerability. We combine public data with our own research to find issues not yet reported to public sources.
Learn more
