CVE-2021-29600: Division by zero in TFLite's implementation of `OneHot`
(updated )
The implementation of the OneHot
TFLite operator is vulnerable to a division by zero error:
int prefix_dim_size = 1;
for (int i = 0; i < op_context.axis; ++i) {
prefix_dim_size *= op_context.indices->dims->data[i];
}
const int suffix_dim_size = NumElements(op_context.indices) / prefix_dim_size;
An attacker can craft a model such that at least one of the dimensions of indices
would be 0. In turn, the prefix_dim_size
value would become 0.
References
- github.com/advisories/GHSA-j8qh-3xrq-c825
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-528.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-726.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-237.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/f61c57bd425878be108ec787f4d96390579fb83e/tensorflow/lite/kernels/one_hot.cc
- github.com/tensorflow/tensorflow/commit/3ebedd7e345453d68e279cfc3e4072648e5e12e5
- github.com/tensorflow/tensorflow/security/advisories/GHSA-j8qh-3xrq-c825
- nvd.nist.gov/vuln/detail/CVE-2021-29600
Detect and mitigate CVE-2021-29600 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →