CVE-2021-29593: Division by zero in TFLite's implementation of `BatchToSpaceNd`
(updated )
The implementation of the BatchToSpaceNd
TFLite operator is vulnerable to a division by zero error:
TF_LITE_ENSURE_EQ(context, output_batch_size % block_shape[dim], 0);
output_batch_size = output_batch_size / block_shape[dim];
An attacker can craft a model such that one dimension of the block
input is 0. Hence, the corresponding value in block_shape
is 0.
References
- github.com/advisories/GHSA-cfx7-2xpc-8w4h
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-521.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-719.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-230.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/b5ed552fe55895aee8bd8b191f744a069957d18d/tensorflow/lite/kernels/batch_to_space_nd.cc
- github.com/tensorflow/tensorflow/commit/2c74674348a4708ced58ad6eb1b23354df8ee044
- github.com/tensorflow/tensorflow/security/advisories/GHSA-cfx7-2xpc-8w4h
- nvd.nist.gov/vuln/detail/CVE-2021-29593
Detect and mitigate CVE-2021-29593 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 →