CVE-2021-37682: Use of unitialized value in TensorFlow Lite
Impact All TFLite operations that use quantization can be made to use unitialized values. For example:
cc const auto affinequantization = reinterpretcast<TfLiteAffineQuantization>( filter->quantization.params);
The issue stems from the fact that quantization.params is only valid if quantization.type is different that kTfLiteNoQuantization. However, these checks are missing in large parts of the code.
Patches We have patched the issue in GitHub commits 537bc7c723439b9194a358f64d871dd326c18887, 4a91f2069f7145aab6ba2d8cfe41be8a110c18a5 and 8933b8a21280696ab119b63263babdb54c298538.
The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
For more information Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
Attribution This vulnerability has been reported by members of the Aivul Team from Qihoo 360.
Other sources
TensorFlow is an end-to-end open source platform for machine learning. In affected versions all TFLite operations that use quantization can be made to use unitialized values. For example. The issue stems from the fact that quantization.params is only valid if quantization.type is different that kTfLiteNoQuantization. However, these checks are missing in large parts of the code. We have patched the issue in GitHub commits 537bc7c723439b9194a358f64d871dd326c18887, 4a91f2069f7145aab6ba2d8cfe41be8a110c18a5 and 8933b8a21280696ab119b63263babdb54c298538. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/tensorflow-gputo a version that resolves this vulnerability.Fixed in 2.5.1 - Upgrade
Upgrade
pip/tensorflow-gputo a version that resolves this vulnerability.Fixed in 2.4.3 - Upgrade
Upgrade
pip/tensorflow-gputo a version that resolves this vulnerability.Fixed in 2.3.4 - Upgrade
Upgrade
pip/tensorflow-cputo a version that resolves this vulnerability.Fixed in 2.5.1 - Upgrade
Upgrade
pip/tensorflow-cputo a version that resolves this vulnerability.Fixed in 2.4.3 - Upgrade
Upgrade
pip/tensorflow-cputo a version that resolves this vulnerability.Fixed in 2.3.4 - Upgrade
Upgrade
pip/tensorflowto a version that resolves this vulnerability.Fixed in 2.5.1 - Upgrade
Upgrade
pip/tensorflowto a version that resolves this vulnerability.Fixed in 2.4.3 - Upgrade
Upgrade
pip/tensorflowto a version that resolves this vulnerability.Fixed in 2.3.4 - Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Fixed in 2.6.0 - Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Patch 537bc7c723439b9194a358f64d871dd326c18887 - Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Patch 4a91f2069f7145aab6ba2d8cfe41be8a110c18a5 - Upgrade
Upgrade
TensorFlowto a version that resolves this vulnerability.Patch 8933b8a21280696ab119b63263babdb54c298538 - Upgrade
Upgrade
TensorFlow 2.5.1to a version that resolves this vulnerability.Patch 537bc7c723439b9194a358f64d871dd326c18887 - Upgrade
Upgrade
TensorFlow 2.4.3to a version that resolves this vulnerability.Patch 537bc7c723439b9194a358f64d871dd326c18887 - Upgrade
Upgrade
TensorFlow 2.3.4to a version that resolves this vulnerability.Patch 537bc7c723439b9194a358f64d871dd326c18887
Event History
Frequently Asked Questions
What is the severity of CVE-2021-37682?
CVE-2021-37682 is classified as a high severity vulnerability due to its potential to expose uninitialized values in TFLite operations using quantization.
How do I fix CVE-2021-37682?
To fix CVE-2021-37682, upgrade TensorFlow to version 2.5.1, 2.4.3, or 2.3.4 depending on the version you are currently using.
Which versions of TensorFlow are affected by CVE-2021-37682?
CVE-2021-37682 affects TensorFlow versions 2.3.0 to 2.3.4, 2.4.0 to 2.4.3, 2.5.0, and various release candidates of 2.6.0.
What kind of applications are impacted by CVE-2021-37682?
Applications using TensorFlow for machine learning operations that implement quantization techniques may be impacted by CVE-2021-37682.
Is there a workaround for CVE-2021-37682 if I cannot update TensorFlow immediately?
Currently, no official workarounds are provided for CVE-2021-37682, and it is recommended to upgrade to a patched version as soon as possible.