Skip to content
LowVulnerability

CVE-2021-29521: TensorFlow is an end-to-end open source platform for machine learning. Specifying a negative dense shape in…

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

Summary

TensorFlow's tf.raw_ops.SparseCountSparseOutput crashes with a segmentation fault when the dense shape argument contains a negative value. The count_ops.cc kernel assumes the first dense shape element is positive and uses it to initialize a BatchedMap<T> std::vector, so the broken invariants trigger the crash.

Mitigation

Ensuring that the dense_shape argument is a valid tensor shape (all elements non-negative) solves this issue. The fix will be included in TensorFlow 2.5.0, and the commit will also be cherry-picked to TensorFlow 2.4.2 and TensorFlow 2.3.3.