CVE-2020-15195 – Heap buffer overflow in Tensorflow
https://notcve.org/view.php?id=CVE-2020-15195
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the implementation of `SparseFillEmptyRowsGrad` uses a double indexing pattern. It is possible for `reverse_index_map(i)` to be an index outside of bounds of `grad_values`, thus resulting in a heap buffer overflow. The issue is patched in commit 390611e0d45c5793c7066110af37c8514e6a6c54, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1. En Tensorflow versiones anteriores a 1.15.4, 2.0.3, 2.1.2, 2.2.1 y 2.3.1, la implementación de "SparseFillEmptyRowsGrad" usa un patrón de indexación doble. Es posible que "reverse_index_map (i)" sea un índice fuera de los límites de "grad_values", lo que resulta en un desbordamiento del búfer de la pila. • http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html https://github.com/tensorflow/tensorflow/commit/390611e0d45c5793c7066110af37c8514e6a6c54 https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-63xm-rx5p-xvqr • CWE-119: Improper Restriction of Operations within the Bounds of a Memory Buffer CWE-122: Heap-based Buffer Overflow CWE-787: Out-of-bounds Write •
CVE-2020-15190 – Segfault in Tensorflow
https://notcve.org/view.php?id=CVE-2020-15190
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the `tf.raw_ops.Switch` operation takes as input a tensor and a boolean and outputs two tensors. Depending on the boolean value, one of the tensors is exactly the input tensor whereas the other one should be an empty tensor. However, the eager runtime traverses all tensors in the output. Since only one of the tensors is defined, the other one is `nullptr`, hence we are binding a reference to `nullptr`. This is undefined behavior and reported as an error if compiling with `-fsanitize=null`. • http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html https://github.com/tensorflow/tensorflow/commit/da8558533d925694483d2c136a9220d6d49d843c https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-4g9f-63rx-5cw4 • CWE-20: Improper Input Validation CWE-476: NULL Pointer Dereference •
CVE-2018-21233
https://notcve.org/view.php?id=CVE-2018-21233
TensorFlow before 1.7.0 has an integer overflow that causes an out-of-bounds read, possibly causing disclosure of the contents of process memory. This occurs in the DecodeBmp feature of the BMP decoder in core/kernels/decode_bmp_op.cc. ensorFlow versiones anteriores a la versión 1.7.0, tiene un desbordamiento de enteros que causa una lectura fuera de límites, posiblemente causando una revelación del contenido de la memoria del proceso. Esto ocurre en la funcionalidad DecodeBmp del decodificador BMP en el archivo core/kernels/decode_bmp_op.cc. • https://github.com/tensorflow/tensorflow/blob/master/tensorflow/security/advisory/tfsa-2018-001.md https://github.com/tensorflow/tensorflow/commit/49f73c55d56edffebde4bca4a407ad69c1cae433 • CWE-125: Out-of-bounds Read •
CVE-2020-5215 – Segmentation faultin TensorFlow when converting a Python string to tf.float16
https://notcve.org/view.php?id=CVE-2020-5215
In TensorFlow before 1.15.2 and 2.0.1, converting a string (from Python) to a tf.float16 value results in a segmentation fault in eager mode as the format checks for this use case are only in the graph mode. This issue can lead to denial of service in inference/training where a malicious attacker can send a data point which contains a string instead of a tf.float16 value. Similar effects can be obtained by manipulating saved models and checkpoints whereby replacing a scalar tf.float16 value with a scalar string will trigger this issue due to automatic conversions. This can be easily reproduced by tf.constant("hello", tf.float16), if eager execution is enabled. This issue is patched in TensorFlow 1.15.1 and 2.0.1 with this vulnerability patched. • https://github.com/tensorflow/tensorflow/commit/5ac1b9e24ff6afc465756edf845d2e9660bd34bf https://github.com/tensorflow/tensorflow/releases/tag/v1.15.2 https://github.com/tensorflow/tensorflow/releases/tag/v2.0.1 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-977j-xj7q-2jr9 • CWE-20: Improper Input Validation CWE-754: Improper Check for Unusual or Exceptional Conditions •
CVE-2019-16778 – Heap buffer overflow in `UnsortedSegmentSum` in TensorFlow
https://notcve.org/view.php?id=CVE-2019-16778
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0. En TensorFlow versiones anteriores a 1.15, un desbordamiento de búfer de la pila puede ser producido en la función UnsortedSegmentSum cuando el argumento de la plantilla Index es int32. En este caso, los campos data_size y num_segments son truncados de int64 hasta int32 y pueden producir números negativos, resultando en el acceso a la memoria de la pila fuera de los límites. • https://github.com/tensorflow/tensorflow/blob/master/tensorflow/security/advisory/tfsa-2019-002.md https://github.com/tensorflow/tensorflow/commit/db4f9717c41bccc3ce10099ab61996b246099892 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-844w-j86r-4x2j • CWE-122: Heap-based Buffer Overflow CWE-681: Incorrect Conversion between Numeric Types •