CVE-2021-37683: TensorFlow GPU Division by Zero Vulnerability
Summary
CVE-2021-37683: TensorFlow is an end-to-end open source platform for machine learning. Affects tensorflow-gpu across 3 version ranges.
< 1e206baedf8bef0334cca3eb92bab134ef525a28
>= 2.3.0, < 2.3.4
>= 2.4.0, < 2.4.3
Fixed in 2.3.4 or 2.4.3, depending 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-37683 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 computation. It is commonly used in scenarios where large-scale parallel processing is required for training and inference tasks. However, a vulnerability has been discovered in TensorFlow GPU that can lead to a division by zero error.
Vulnerability Detail
The vulnerability in TensorFlow GPU arises from a lack of validation in the division operation implemented in TFLite (TensorFlow Lite). Specifically, the division operation does not check whether the divisor tensor contains zero elements. As a result, if the divisor tensor does contain zero elements, a division by zero error can occur during the execution of TensorFlow GPU. This vulnerability can have severe consequences, including program crashes, incorrect results, and potential security implications if the division operation is used in a security-sensitive context.
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.3.0, < 2.3.42.3.4pip install --upgrade "tensorflow-gpu==2.3.4" -
>= 2.4.0, < 2.4.32.4.3pip install --upgrade "tensorflow-gpu==2.4.3"
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 workaround, users can manually validate the divisor tensor before performing the division operation. This can be done by checking if the divisor tensor contains any zero elements. If zero elements are found, an alternative approach should be taken to avoid the division by zero error. Here is an example code snippet that demonstrates the workaround:
import tensorflow as tf
def safe_division(a, b):
zero_elements = tf.math.count_nonzero(b == 0)
if zero_elements > 0:
# Handle the case of zero elements in the divisor tensor
# ... (alternative approach)
else:
return tf.divide(a, b)
Conclusion
The division by zero vulnerability in TensorFlow GPU can have serious consequences, including program crashes and incorrect results. It is crucial for users of TensorFlow GPU to update to the patched versions as soon as they become available. Additionally, manual validation of the divisor tensor can serve as a temporary workaround to avoid the division by zero error. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for tensorflow-gpu →
FAQ
TensorFlow is an end-to-end open source platform for machine learning. It provides tools, libraries, and resources for developing and deploying machine learning models.
TensorFlow GPU is a variant of TensorFlow that leverages GPU acceleration for faster computation. It is commonly used in scenarios where large-scale parallel processing is required.
TFLite (TensorFlow Lite) is a lightweight version of TensorFlow designed for mobile and embedded devices. It enables efficient execution of machine learning models on resource-constrained platforms.
A division by zero error occurs when a program attempts to divide a number by zero. This operation is undefined in mathematics and can lead to program crashes or incorrect results.
You can use the Vulert Playground at Vulert Scanner to check if your TensorFlow GPU version is affected by this vulnerability. Simply provide your Pipfile.lock and the playground will analyze it for vulnerabilities in real-time.
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow-gpu.