Segfault and data corruption in tensorflow-lite
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 8.7epss 1.2%
exploitation probability
1.2%top 33% of all CVEs
observed exploitation
nono source reports it
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