CVE-2021-29570: TensorFlow MaxPoolGradWithArgmax Heap Read Overflow

tensorflow-cpu Updated 02 Oct 2025

Summary

14/05/2021
Yes i
Unrated
Not published

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

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.

Free scan

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.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

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.4 2.1.4
    pip install --upgrade "tensorflow-cpu==2.1.4"
  • >= 2.2.0, < 2.2.3 2.2.3
    pip install --upgrade "tensorflow-cpu==2.2.3"
  • >= 2.3.0, < 2.3.3 2.3.3
    pip install --upgrade "tensorflow-cpu==2.3.3"
  • >= 2.4.0, < 2.4.2 2.4.2
    pip 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 →

Share this vulnerability

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).

Related vulnerabilities

Recent vulnerabilities recorded for tensorflow-cpu.

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.4 2.1.4
    pip install --upgrade "tensorflow-cpu==2.1.4"
  • >= 2.2.0, < 2.2.3 2.2.3
    pip install --upgrade "tensorflow-cpu==2.2.3"
  • >= 2.3.0, < 2.3.3 2.3.3
    pip install --upgrade "tensorflow-cpu==2.3.3"
  • >= 2.4.0, < 2.4.2 2.4.2
    pip 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 →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback