CVE-2021-29575: TensorFlow ReverseSequence Denial of Service

tensorflow-cpu Updated 02 Oct 2025

Summary

14/05/2021
Yes i
Unrated
Not published

CVE-2021-29575: TensorFlow is an end-to-end open source platform for machine learning. Affects tensorflow-cpu across 5 version ranges.

>= 2.2.0, < 2.2.3 < 2.2.0rc0 >= 2.3.0, < 2.3.3 >= 2.4.0, < 2.4.2 < ecf768cbe50cedc0a45ce1ee223146a3d3d26d23

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-29575 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 Penetration testing for web, API and mobile 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 end-to-end open source platform for machine learning. It provides a comprehensive ecosystem of tools, libraries, and resources for building and deploying machine learning models. TensorFlow is widely used in various industries and research domains for tasks such as image classification, natural language processing, and reinforcement learning. The vulnerability described in this report affects the tf.raw_ops.ReverseSequence implementation in TensorFlow.

Vulnerability Detail

The implementation of tf.raw_ops.ReverseSequence in TensorFlow allows for a stack overflow and/or denial of service (DoS) attack. The vulnerability arises from the failure to validate the seq_dim and batch_dim arguments, which can result in negative values or invalid inputs. Negative values for seq_dim can lead to a stack overflow, while invalid values for batch_dim can cause a CHECK failure. The impact of this vulnerability depends on the version of Eigen code used to implement the operation. The issue has been assigned the CVE identifier CVE-2021-29575 and has been addressed in TensorFlow 2.5.0. Fixes have also been backported to TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3, and TensorFlow 2.1.4, as these versions are still within the supported range.

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.2.0rc0 2.2.0rc0
    pip install --upgrade "tensorflow-cpu==2.2.0rc0"
  • >= 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 workaround, users can avoid using the tf.raw_ops.ReverseSequence operation or modify their code to validate the seq_dim and batch_dim arguments before calling the function. Here is an example of how to perform the validation check in Python:

import tensorflow as tf

def reverse_sequence_safe(data, seq_lengths, seq_dim, batch_dim):
    if seq_dim < 0 or seq_dim >= data.shape.ndims:
        raise ValueError('Invalid seq_dim')
    if batch_dim < 0 or batch_dim >= data.shape.ndims:
        raise ValueError('Invalid batch_dim')
    return tf.raw_ops.ReverseSequence(data, seq_lengths, seq_dim, batch_dim)

Conclusion

The vulnerability in TensorFlow's tf.raw_ops.ReverseSequence operation can result in a stack overflow or denial of service (DoS) attack. It is crucial to update to TensorFlow 2.5.0 or apply the appropriate patches for the affected versions. Users can also implement the provided workaround to validate the input arguments before calling the function. For further support on 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 of tools and libraries for building and deploying machine learning models.

tf.raw_ops.ReverseSequence is an operation in TensorFlow that allows for reversing sequences along a specified dimension.

This vulnerability can lead to a stack overflow or denial of service (DoS) attack, depending on the version of Eigen code used. It can be exploited by providing negative values for seq_dim or invalid inputs for batch_dim.

To fix this vulnerability, it is recommended to update TensorFlow to version 2.5.0 or apply the appropriate patch for the affected versions. Ensure that all dependencies and associated libraries are also updated.

Yes, older versions of TensorFlow, including 2.4.2, 2.3.3, 2.2.3, and 2.1.4, are also affected by this vulnerability. Fixes have been backported to these versions.

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.2.0rc0 2.2.0rc0
    pip install --upgrade "tensorflow-cpu==2.2.0rc0"
  • >= 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