Skip to content
LowVulnerability

CVE-2021-29580: TensorFlow denial of service and undefined behavior in FractionalMaxPoolGrad

Identifier
CVE-2021-29580
Published
Record updated
View JSON
Affected
  • tensorflow < 2.1.4, fixed in 2.1.4, released June 15, 2021, 31 days after disclosure
  • tensorflow >= 2.2.0, < 2.2.3, fixed in 2.2.3, released June 15, 2021, 31 days after disclosure
  • tensorflow >= 2.3.0, < 2.3.3, fixed in 2.3.3, released June 15, 2021, 31 days after disclosure
  • and 9 more
Known exploitation
Not listed in the CISA Known Exploited Vulnerabilities catalog at the last check.
EPSS
0.2%

Summary

The implementation of tf.raw_ops.FractionalMaxPoolGrad in TensorFlow triggers undefined behavior when one of its input tensors is empty. The code also fails to validate that input and output tensors are not empty and are of the same rank, and a CHECK condition that becomes false aborts the process, enabling a denial of service attack.

Mitigation

Fix will be included in TensorFlow 2.5.0. The commit will also be cherrypicked to TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4.