CVE-2021-29570: TensorFlow MaxPoolGradWithArgmax Heap Read Overflow
Summary
CVE-2021-29570: TensorFlow is an end-to-end open source platform for machine learning. Affects tensorflow-cpu 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
< dcd7867de0fea4b72a2b34bd41eb74548dc23886
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-gpu · PyPI
The same CVE-2021-29570 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 open-source platform for machine learning that provides a comprehensive ecosystem for developing and deploying machine learning models. It offers a wide range of functionalities and tools for data preprocessing, model training, and inference. TensorFlow is widely used in various domains, including computer vision, natural language processing, and reinforcement learning. However, a vulnerability has been discovered in the implementation of tf.raw_ops.MaxPoolGradWithArgmax function, which can lead to heap read overflow if an attacker supplies specially crafted inputs.
Vulnerability Detail
The vulnerability arises from the implementation of tf.raw_ops.MaxPoolGradWithArgmax in TensorFlow. This function performs gradient computation for the max pooling operation with argmax indices. The implementation uses the same value to index two different arrays, but there is no guarantee that the sizes of these arrays are identical. As a result, an attacker can provide inputs that cause reads outside the bounds of the heap allocated data, leading to potential information disclosure or arbitrary code execution. The vulnerability affects versions of TensorFlow ranging from 0 to 2.1.4, 2.2.0 to 2.2.3, 2.3.0 to 2.3.3, and 2.4.0 to 2.4.2.
How To Fix
Latest published version: 2.21.0 as of 22 Oct 2026
pip install --upgrade "tensorflow-cpu==2.21.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-cpu==2.1.4" -
>= 2.2.0, < 2.2.32.2.3pip install --upgrade "tensorflow-cpu==2.2.3" -
>= 2.3.0, < 2.3.32.3.3pip install --upgrade "tensorflow-cpu==2.3.3" -
>= 2.4.0, < 2.4.22.4.2pip install --upgrade "tensorflow-cpu==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 avoid using the tf.raw_ops.MaxPoolGradWithArgmax function in their TensorFlow code until they can update to a patched version. Alternatively, users can implement their own gradient computation for max pooling with argmax indices, ensuring proper bounds checking and array indexing to prevent heap read overflow.
Conclusion
The vulnerability in TensorFlow's tf.raw_ops.MaxPoolGradWithArgmax function can lead to heap read overflow, potentially exposing sensitive information or enabling arbitrary code execution. Users are advised to update to the latest patched versions of TensorFlow to mitigate this vulnerability. For further assistance or support in vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for tensorflow-cpu →
FAQ
TensorFlow is an open-source platform for machine learning that provides a comprehensive ecosystem for developing and deploying machine learning models.
tf.raw_ops.MaxPoolGradWithArgmax is a TensorFlow function that performs gradient computation for the max pooling operation with argmax indices.
The vulnerability can lead to heap read overflow, potentially resulting in information disclosure or arbitrary code execution.
The vulnerability affects TensorFlow versions ranging from 0 to 2.1.4, 2.2.0 to 2.2.3, 2.3.0 to 2.3.3, and 2.4.0 to 2.4.2.
To fix this vulnerability, it is recommended to update to the latest available version of TensorFlow (2.5.0, 2.4.2, 2.3.3, 2.2.3, or 2.1.4).
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow-cpu.