Skip to content
MediumVulnerability

CVE-2021-37669: TensorFlow denial of service through NonMaxSuppressionV5 division by zero

Identifier
CVE-2021-37669
Published
Record updated
View JSON
Affected
  • tensorflow < 2.3.4, fixed in 2.3.4, released August 10, 2021, 3 days before disclosure
  • tensorflow >= 2.4.0, < 2.4.3, fixed in 2.4.3, released August 10, 2021, 3 days before disclosure
  • tensorflow = 2.5.0, fixed in 2.5.1, released August 10, 2021, 3 days before disclosure
  • and 6 more
Known exploitation
Not listed in the CISA Known Exploited Vulnerabilities catalog at the last check.
EPSS
0.2%

Summary

TensorFlow versions before the fix allow an attacker to cause denial of service in applications serving models that use tf.raw_ops.NonMaxSuppressionV5. A negative user-supplied output_size is implicitly converted to an unsigned size_t when resizing a std::vector, which triggers a division by 0 and a crash. The same issue appears in CombinedNonMaxSuppression.

Mitigation

Patched in GitHub commits 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0, and the commits will be cherry-picked to TensorFlow 2.5.1, 2.4.3 and 2.3.4.