CVE-2021-37686: TensorFlow - Logic Bug in TFLite Strided Slice Implementation
Summary
CVE-2021-37686: Infinite loop in TensorFlow Lite. Affects tensorflow across 3 version ranges.
>= 2.3.0, < 2.3.4
>= 2.4.0, < 2.4.3
>= 2.5.0, < 2.5.1
Fixed in 2.3.4, 2.4.3 or 2.5.1, depending on the release line you run. How to fix ↓
Also tracked for
- tensorflow · PyPI
- tensorflow · PyPI
- tensorflow-cpu · PyPI
- tensorflow-gpu · PyPI
The same CVE-2021-37686 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
TensorFlow is an end-to-end open source platform for machine learning. It provides a comprehensive ecosystem of tools, libraries, and community resources that enable researchers and developers to build and deploy machine learning models. TensorFlow is widely used in various domains, including computer vision, natural language processing, and reinforcement learning. However, in certain versions, TensorFlow is vulnerable to a logic bug in the TFLite strided slice implementation.
Vulnerability Detail
The vulnerability arises from a logic bug in the strided slice implementation in TFLite. This bug can be exploited by an attacker to trigger an infinite loop. The issue stems from the newly introduced support for ellipsis in axis definition. By crafting a malicious model, an attacker can set the ellipsis_end_idx to be smaller than i, causing the inner loop to not increase i. The continue statement then skips over the preincrement at the end of the outer loop, resulting in an infinite loop. This vulnerability can lead to denial of service (DoS) attacks and potential resource exhaustion.
How To Fix
Fixed versions by release line
The minimum fixed version depends on the release line you run.
-
>= 2.3.0, < 2.3.42.3.4 -
>= 2.4.0, < 2.4.32.4.3 -
>= 2.5.0, < 2.5.12.5.1
Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →
Workaround
There is no known workaround for this vulnerability. It is recommended to apply the fix by updating TensorFlow to the latest patched version.
Conclusion
In conclusion, the logic bug in the TFLite strided slice implementation in TensorFlow can be exploited to trigger an infinite loop, leading to denial of service (DoS) attacks and potential resource exhaustion. It is crucial to update TensorFlow to the latest patched version to mitigate this vulnerability. For further support on vulnerability remediation, please contact DevNack.com.
See every vulnerability recorded for tensorflow →
FAQ
TensorFlow is an open source platform for machine learning that provides tools and libraries for building and deploying machine learning models.
This vulnerability can be exploited by an attacker to trigger an infinite loop, leading to denial of service (DoS) attacks and potential resource exhaustion.
The vulnerability affects TensorFlow versions 2.3.0 to 2.4.0, as well as versions 2.5.0-rc0 to 2.6.0-rc2.
To fix this vulnerability, update TensorFlow to version 2.3.4 or 2.4.3 if using versions 2.3.0 to 2.4.0. For versions 2.5.0 and later, update to the latest available version.
There is no known workaround for this vulnerability. It is recommended to update TensorFlow to the latest patched version.
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow.