CVE-2021-29604: TensorFlow-GPU Hashtable Lookup Division by Zero Vulnerability
Summary
CVE-2021-29604: TensorFlow is an end-to-end open source platform for machine learning. Affects tensorflow-gpu across 5 version ranges.
< 2.1.4
>= 2.2.0, < 2.2.3
>= 2.3.0, < 2.3.3
>= 2.4.0, < 2.4.2
< 5117e0851348065ed59c991562c0ec80d9193db2
Fixed in 4 releases; the minimum fixed version depends on the release line you run. How to fix ↓
Also tracked for
- tensorflow · Bitnami
- tensorflow · PyPI
- tensorflow · PyPI
- tensorflow-cpu · PyPI
The same CVE-2021-29604 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
TensorFlow is an end-to-end open source platform for machine learning. It provides a comprehensive ecosystem of tools, libraries, and resources for developing and deploying machine learning models. TensorFlow-GPU is a variant of TensorFlow that leverages GPU acceleration for faster training and inference. This vulnerability affects the TFLite implementation of hashtable lookup in TensorFlow-GPU.
Vulnerability Detail
The TFLite implementation of hashtable lookup in TensorFlow-GPU is vulnerable to a division by zero error. The specific code segment responsible for the vulnerability can be found in the file 'hashtable_lookup.cc' (lines 114-115) of the TensorFlow repository. An attacker can exploit this vulnerability by crafting a malicious model that sets the first dimension of the 'values' parameter to 0. When the vulnerable code is executed, a division by zero error occurs, leading to a potential crash or other unintended behavior. The impact of this vulnerability depends on the context in which TensorFlow-GPU is used, but it could potentially allow an attacker to disrupt machine learning processes or cause denial of service.
How To Fix
Latest published version: 2.12.0 as of 22 Oct 2026
pip install --upgrade "tensorflow-gpu==2.12.0"
Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.
If you can't move to the latest
The minimum fixed version depends on the release line you run.
-
< 2.1.42.1.4pip install --upgrade "tensorflow-gpu==2.1.4" -
>= 2.2.0, < 2.2.32.2.3pip install --upgrade "tensorflow-gpu==2.2.3" -
>= 2.3.0, < 2.3.32.3.3pip install --upgrade "tensorflow-gpu==2.3.3" -
>= 2.4.0, < 2.4.22.4.2pip install --upgrade "tensorflow-gpu==2.4.2"
Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →
Workaround
As a temporary workaround, users can manually modify the 'hashtable_lookup.cc' file in their TensorFlow-GPU installation to include a check for a zero value in the first dimension of the 'values' parameter before performing the division operation. Here is an example of the modified code:
if (values.dim_size(0) == 0) {
// Handle the zero dimension case
// ... (add appropriate handling code here)
} else {
// Perform the division operation
// ... (original code)
}
Conclusion
The division by zero vulnerability in the TFLite hashtable lookup implementation of TensorFlow-GPU can be exploited by an attacker to disrupt machine learning processes or cause denial of service. Users are advised to update to the latest patched version of TensorFlow-GPU as soon as it becomes available and follow best practices for secure model deployment. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for tensorflow-gpu →
FAQ
TensorFlow-GPU is a variant of TensorFlow that utilizes GPU acceleration for faster training and inference of machine learning models. It is commonly used in environments where high-performance computing is required.
TFLite is a lightweight version of TensorFlow designed for mobile and embedded devices. It provides a subset of TensorFlow's functionality optimized for resource-constrained environments.
An attacker can exploit this vulnerability by crafting a malicious machine learning model that sets the first dimension of the 'values' parameter to 0. When the model is executed using TensorFlow-GPU, the vulnerable code will be triggered, resulting in a division by zero error.
The impact of this vulnerability depends on the context in which TensorFlow-GPU is used. In some cases, it could lead to a crash or other unintended behavior, potentially disrupting machine learning processes or causing denial of service.
To protect against this vulnerability, it is recommended to update to the latest patched version of TensorFlow-GPU as soon as it becomes available. Additionally, following best practices for secure model deployment and restricting access to TensorFlow-GPU instances can help mitigate the risk of exploitation.
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow-gpu.