CVE-2021-29602: TensorFlow-GPU DepthwiseConv Operator Division by Zero Vulnerability
Summary
CVE-2021-29602: 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
< cbda3c6b2dbbd3fbdc482ff8c0170a78ec2e97d0
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-29602 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 the power of GPUs for accelerated computation. The DepthwiseConv operator is used in TensorFlow-GPU to perform depthwise separable convolution, a common operation in convolutional neural networks. This operator is vulnerable to a division by zero error when the fourth dimension of the input tensor is set to zero.
Vulnerability Detail
The vulnerability in the DepthwiseConv operator arises from a lack of proper input validation. An attacker can exploit this vulnerability by crafting a malicious model that sets the fourth dimension of the input tensor to zero. When the operator attempts to perform the convolution operation, a division by zero error occurs, leading to a program crash or potential code execution. This vulnerability can be leveraged to disrupt the execution of TensorFlow-GPU models or potentially execute arbitrary code in the context of the affected application.
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 ensure that the fourth dimension of the input tensor is always set to a non-zero value. This can be achieved by adding a validation step in the model creation process to check the dimensions of the input tensor and raise an error if the fourth dimension is zero. Here is an example of how to implement this workaround in Python:
import tensorflow as tf
def create_model(input_shape):
if input_shape[3] == 0:
raise ValueError('Invalid input shape: fourth dimension cannot be zero')
# Rest of the model creation code
Conclusion
The TensorFlow-GPU DepthwiseConv operator division by zero vulnerability can be exploited by crafting a malicious model with a zero-valued fourth dimension of the input tensor. This can lead to a division by zero error and potential program crashes or code execution. It is crucial for users of TensorFlow-GPU to update to the fixed versions mentioned above or apply the provided workaround to mitigate the vulnerability. For further assistance or support in vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for tensorflow-gpu →
FAQ
TensorFlow-GPU is a variant of TensorFlow that utilizes GPUs for accelerated computation. It is commonly used in machine learning applications to train and deploy models efficiently.
The DepthwiseConv operator is a specific type of convolutional operation used in convolutional neural networks. It performs depthwise separable convolution, which reduces the computational complexity of the convolution operation.
An attacker can exploit this vulnerability by crafting a malicious model that sets the fourth dimension of the input tensor to zero. When the DepthwiseConv operator attempts to perform the convolution operation, a division by zero error occurs, potentially leading to a program crash or code execution.
No, not all versions of TensorFlow-GPU are affected. The vulnerability exists in TensorFlow-GPU versions 2.1.4 and above. Versions prior to 2.1.4 are not affected.
Yes, the TensorFlow team has released fixed versions of TensorFlow-GPU that address this vulnerability. Users are advised to upgrade to TensorFlow 2.5.0, TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3, or TensorFlow 2.1.4 to mitigate the vulnerability.
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow-gpu.