title: Segfault and data corruption in tensorflow-lite
description: In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, 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. 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. The issue is patched in commit 2d88f470dea2671b430884260f3626b1fe99830a, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.
problem types: {"CWE-119":"Improper Restriction of Operations within the Bounds of a Memory Buffer"}
affected:
{
product: tensorflow
vendor: tensorflow
versions:
status: affected, version: < 1.15.4
status: affected, version: >= 2.0.0, < 2.0.3
status: affected, version: >= 2.1.0, < 2.1.2
status: affected, version: >= 2.2.0, < 2.2.1
status: affected, version: >= 2.3.0, < 2.3.1
}
metrics:
cvssV3_1: [
attackComplexity: HIGH
attackVector: NETWORK
availabilityImpact: HIGH
baseScore: 8.7
baseSeverity: HIGH
confidentialityImpact: NONE
integrityImpact: HIGH
privilegesRequired: NONE
scope: CHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:H
version: 3.1
]