Skip to content
MediumVulnerability

CVE-2021-41213: TensorFlow deadlock in tf.function with mutually recursive functions

Identifier
CVE-2021-41213
Published
Record updated
View JSON
Affected
  • tensorflow >= 2.6.0, < 2.6.1, fixed in 2.6.1, released November 1, 2021, 5 days before disclosure
  • tensorflow >= 2.5.0, < 2.5.2, fixed in 2.5.2, released November 1, 2021, 5 days before disclosure
  • tensorflow < 2.4.4, fixed in 2.4.4, released November 1, 2021, 5 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.function` API can deadlock when two `tf.function`-decorated Python functions are mutually recursive, because the code uses a non-reentrant `Lock` object. Loading any model that contains such mutually recursive functions is vulnerable. An attacker can cause denial of service by getting users to load such a model and call a recursive `tf.function`, though this is not a frequent scenario.

Mitigation

The fix will be included in TensorFlow 2.7.0. The commit will also be cherry-picked to TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4.