CVE-2021-37639 – Null pointer dereference and heap OOB read in TensorFlow
https://notcve.org/view.php?id=CVE-2021-37639
TensorFlow is an end-to-end open source platform for machine learning. When restoring tensors via raw APIs, if the tensor name is not provided, TensorFlow can be tricked into dereferencing a null pointer. Alternatively, attackers can read memory outside the bounds of heap allocated data by providing some tensor names but not enough for a successful restoration. The [implementation](https://github.com/tensorflow/tensorflow/blob/47a06f40411a69c99f381495f490536972152ac0/tensorflow/core/kernels/save_restore_tensor.cc#L158-L159) retrieves the tensor list corresponding to the `tensor_name` user controlled input and immediately retrieves the tensor at the restoration index (controlled via `preferred_shard` argument). This occurs without validating that the provided list has enough values. • https://github.com/tensorflow/tensorflow/commit/9e82dce6e6bd1f36a57e08fa85af213e2b2f2622 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-gh6x-4whr-2qv4 • CWE-125: Out-of-bounds Read CWE-476: NULL Pointer Dereference •
CVE-2021-37638 – Null pointer dereference in `RaggedTensorToTensor` in TensorFlow
https://notcve.org/view.php?id=CVE-2021-37638
TensorFlow is an end-to-end open source platform for machine learning. Sending invalid argument for `row_partition_types` of `tf.raw_ops.RaggedTensorToTensor` API results in a null pointer dereference and undefined behavior. The [implementation](https://github.com/tensorflow/tensorflow/blob/47a06f40411a69c99f381495f490536972152ac0/tensorflow/core/kernels/ragged_tensor_to_tensor_op.cc#L328) accesses the first element of a user supplied list of values without validating that the provided list is not empty. We have patched the issue in GitHub commit 301ae88b331d37a2a16159b65b255f4f9eb39314. The fix will be included in TensorFlow 2.6.0. • https://github.com/tensorflow/tensorflow/commit/301ae88b331d37a2a16159b65b255f4f9eb39314 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hwr7-8gxx-fj5p • CWE-476: NULL Pointer Dereference •
CVE-2021-37660 – Division by 0 in inplace operations in TensorFlow
https://notcve.org/view.php?id=CVE-2021-37660
TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause a floating point exception by calling inplace operations with crafted arguments that would result in a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/84d053187cb80d975ef2b9684d4b61981bca0c41/tensorflow/core/kernels/inplace_ops.cc#L283) has a logic error: it should skip processing if `x` and `v` are empty but the code uses `||` instead of `&&`. We have patched the issue in GitHub commit e86605c0a336c088b638da02135ea6f9f6753618. The fix will be included in TensorFlow 2.6.0. • https://github.com/tensorflow/tensorflow/commit/e86605c0a336c088b638da02135ea6f9f6753618 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-cm5x-837x-jf3c • CWE-369: Divide By Zero •
CVE-2021-37653 – Division by 0 in `ResourceGather` in TensorFlow
https://notcve.org/view.php?id=CVE-2021-37653
TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can trigger a crash via a floating point exception in `tf.raw_ops.ResourceGather`. The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/resource_variable_ops.cc#L725-L731) computes the value of a value, `batch_size`, and then divides by it without checking that this value is not 0. We have patched the issue in GitHub commit ac117ee8a8ea57b73d34665cdf00ef3303bc0b11. The fix will be included in TensorFlow 2.6.0. • https://github.com/tensorflow/tensorflow/commit/ac117ee8a8ea57b73d34665cdf00ef3303bc0b11 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-qjj8-32p7-h289 • CWE-369: Divide By Zero •
CVE-2021-37642 – Division by 0 in `ResourceScatterDiv` in TensorFlow
https://notcve.org/view.php?id=CVE-2021-37642
TensorFlow is an end-to-end open source platform for machine learning. In affected versions the implementation of `tf.raw_ops.ResourceScatterDiv` is vulnerable to a division by 0 error. The [implementation](https://github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/kernels/resource_variable_ops.cc#L865) uses a common class for all binary operations but fails to treat the division by 0 case separately. We have patched the issue in GitHub commit 4aacb30888638da75023e6601149415b39763d76. The fix will be included in TensorFlow 2.6.0. • https://github.com/tensorflow/tensorflow/commit/4aacb30888638da75023e6601149415b39763d76 https://github.com/tensorflow/tensorflow/security/advisories/GHSA-ch4f-829c-v5pw • CWE-369: Divide By Zero •