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.
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
The product writes data past the end, or before the beginning, of the intended buffer.
Link | Tags |
---|---|
https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1 | third party advisory |
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-q4qf-3fc6-8x34 | third party advisory exploit |
https://github.com/tensorflow/tensorflow/commit/2d88f470dea2671b430884260f3626b1fe99830a | third party advisory patch |
http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html | mailing list third party advisory vendor advisory |