Headline
CVE-2022-41901: Fix missing sparse matrix crash. · tensorflow/tensorflow@f856d02
TensorFlow is an open source platform for machine learning. An input sparse_matrix
that is not a matrix with a shape with rank 0 will trigger a CHECK
fail in tf.raw_ops.SparseMatrixNNZ
. We have patched the issue in GitHub commit f856d02e5322821aad155dad9b3acab1e9f5d693. The fix will be included in TensorFlow 2.11. We will also cherrypick this commit on TensorFlow 2.10.1, 2.9.3, and TensorFlow 2.8.4, as these are also affected and still in supported range.
@@ -25,10 +25,12 @@ limitations under the License. #include “third_party/eigen3/unsupported/Eigen/CXX11/Tensor” #include “tensorflow/core/framework/op_kernel.h” #include “tensorflow/core/framework/tensor.h” #include “tensorflow/core/framework/tensor_shape.h” #include “tensorflow/core/framework/tensor_types.h” #include “tensorflow/core/framework/variant.h” #include “tensorflow/core/framework/variant_encode_decode.h” #include “tensorflow/core/framework/variant_op_registry.h” #include “tensorflow/core/platform/errors.h”
namespace tensorflow {
@@ -633,6 +635,11 @@ template <typename T> Status ExtractVariantFromInput(OpKernelContext* ctx, int index, const T** value) { const Tensor& input_t = ctx->input(index); if (!TensorShapeUtils::IsScalar(input_t.shape())) { return errors::InvalidArgument( "Invalid input matrix: Shape must be rank 0 but is rank ", input_t.dims()); } const Variant& input_variant = input_t.scalar<Variant>()(); *value = input_variant.get<T>(); if (*value == nullptr) {
Related news
### Impact An input `sparse_matrix` that is not a matrix with a shape with rank 0 will trigger a `CHECK` fail in [`tf.raw_ops.SparseMatrixNNZ`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/sparse/sparse_matrix.h). ```python import tensorflow as tf tf.raw_ops.SparseMatrixNNZ(sparse_matrix=[]) ``` ### Patches We have patched the issue in GitHub commit [f856d02e5322821aad155dad9b3acab1e9f5d693](https://github.com/tensorflow/tensorflow/commit/f856d02e5322821aad155dad9b3acab1e9f5d693). The fix will be included in TensorFlow 2.11. We will also cherrypick this commit on TensorFlow 2.10.1, 2.9.3, and TensorFlow 2.8.4, as these are also affected and still in supported range. ### For more information Please consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions. ### Attribution This vulnerability has been reported by Kang...