CVE-2020-15207: Segfault and data corruption in tensorflow-lite
(updated )
To mimic Python’s indexing with negative values, TFLite uses ResolveAxis
to convert negative values to positive indices. However, the only check that the converted index is now valid is only present in debug builds:
https://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf/tensorflow/lite/kernels/internal/reference/reduce.h#L68-L72
If the DCHECK
does not trigger, then code execution moves ahead with a negative index. This, in turn, results in accessing data out of bounds which results in segfaults and/or data corruption.
References
- github.com/advisories/GHSA-q4qf-3fc6-8x34
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-287.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2020-322.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2020-130.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/commit/2d88f470dea2671b430884260f3626b1fe99830a
- github.com/tensorflow/tensorflow/releases/tag/v2.3.1
- github.com/tensorflow/tensorflow/security/advisories/GHSA-q4qf-3fc6-8x34
- nvd.nist.gov/vuln/detail/CVE-2020-15207
Detect and mitigate CVE-2020-15207 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 →