CVE-2022-29210: Heap buffer overflow due to incorrect hash function in TensorFlow
TensorFlow is an open source platform for machine learning. In version 2.8.0, the TensorKey hash function used total estimated AllocatedBytes(), which (a) is an estimate per tensor, and (b) is a very poor hash function for constants (e.g. int32t). It also tried to access individual tensor bytes through tensor.data() of size AllocatedBytes(). This led to ASAN failures because the AllocatedBytes() is an estimate of total bytes allocated by a tensor, including any pointed-to constructs (e.g. strings), and does not refer to contiguous bytes in the .data() buffer. The discoverers could not use this byte vector anyway because types such as tstring include pointers, whereas they needed to hash the string values themselves. This issue is patched in Tensorflow versions 2.9.0 and 2.8.1.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2022-29210?
CVE-2022-29210 is categorized with a high severity due to its potential impact on machine learning applications using TensorFlow.
How do I fix CVE-2022-29210?
To address CVE-2022-29210, update TensorFlow to version 2.8.1 or later, where the vulnerability has been patched.
What versions of TensorFlow are affected by CVE-2022-29210?
CVE-2022-29210 specifically affects TensorFlow version 2.8.0.
What are the implications of CVE-2022-29210 for machine learning developers?
The implications of CVE-2022-29210 include potential vulnerabilities in tensor management that could lead to inefficient performance or data integrity issues.
Is CVE-2022-29210 related to tensor handling in TensorFlow?
Yes, CVE-2022-29210 is directly related to the `TensorKey` hash function used in handling tensor objects in TensorFlow.