Skip to content
HighVulnerability

CVE-2021-29591: TensorFlow Lite infinite loop and stack overflow via crafted model graphs

Identifier
CVE-2021-29591
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.3%

Summary

TensorFlow's TFlite runtime does not check that graphs are free of loops between nodes. An attacker can craft a model that causes an infinite loop during evaluation, which can become a stack overflow through too many recursive calls. The `While` implementation can be tricked into a case where the body and loop subgraphs are the same, so evaluating one calls `Eval` on the other until stack space is exhausted.

Mitigation

The fix will be included in TensorFlow 2.5.0. The commit will also be cherry-picked to TensorFlow 2.4.2, 2.3.3, 2.2.3 and 2.1.4.