Skip to content
HighVulnerability

CVE-2021-37658: TensorFlow undefined behavior from null reference in MatrixSetDiagV ops

Identifier
CVE-2021-37658
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's `tf.raw_ops.MatrixSetDiagV*` operations bind a reference to a null pointer when the value of `k` is an empty tensor. The implementation checks that `k` is a scalar or vector but never checks its element count, so code that reads the first element of an empty tensor reads invalid memory, causing undefined behavior.

Mitigation

Patched in GitHub commit ff8894044dfae5568ecbf2ed514c1a37dc394f1b. The fix will be included in TensorFlow 2.6.0. The commit will also be cherry-picked to TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4.