← back
CVE-2020-15207

Segfault and data corruption in tensorflow-lite

CVSS 8.7 HIGHEPSS 1.2%CWE-119
In short

TensorFlow Lite fails to properly validate array indices when converting negative values, allowing out-of-bounds memory access that can crash the application or corrupt data. This happens because a critical validation check only runs in debug mode, leaving production systems vulnerable.

Technical detail

The vulnerability exists in the `ResolveAxis` function which converts negative indices to positive ones without proper bounds checking in release builds (validation only present in debug builds via DCHECK). An attacker can supply crafted input with invalid negative indices to trigger out-of-bounds memory access, resulting in segmentation faults or data corruption. The issue affects TensorFlow Lite versions before 1.15.4, 2.0.3, 2.1.2, 2.2.1, and 2.3.1.

Summary generated and translated by AI from the official 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.
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:H
Affected products
tensorflow · tensorflow

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →