PT-2020-14283 · Google · Tensorflow Lite

Published

2020-09-25

·

Updated

2024-03-06

·

CVE-2020-15212

CVSS v4.0

9.1

Critical

VectorAV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:H/SC:L/SI:L/SA:H
Name of the Vulnerable Software and Affected Versions TensorFlow Lite versions prior to 2.2.1 TensorFlow Lite versions prior to 2.3.1
Description The issue allows models using segment sum to trigger writes outside of bounds of heap allocated buffers by inserting negative elements in the segment ids tensor. Users having access to segment ids data can alter output index and then write to outside of output data buffer, potentially resulting in a segmentation fault or further corrupting the memory. This can be chained with other vulnerabilities to create more advanced exploits.
Recommendations For versions prior to 2.2.1, upgrade to TensorFlow 2.2.1. For versions prior to 2.3.1, upgrade to TensorFlow 2.3.1. As a temporary workaround, consider adding a custom Verifier to the model loading code to ensure that the segment ids are all positive, although this only handles the case when the segment ids are stored statically in the model. A similar validation could be done if the segment ids are generated at runtime between inference steps. If the segment ids are generated as outputs of a tensor during inference steps, then there are no possible workarounds and users are advised to upgrade to patched code.

Exploit

Fix

Memory Corruption

Weakness Enumeration

Related Identifiers

BIT-TENSORFLOW-2020-15212
CVE-2020-15212
GHSA-HX2X-85GR-WRPQ
PYSEC-2020-135
PYSEC-2020-292
PYSEC-2020-327

Affected Products

Tensorflow Lite