# 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/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 →