VYPR
Moderate severityNVD Advisory· Published Nov 5, 2021· Updated Aug 4, 2024

`SparseFillEmptyRows` heap OOB read

CVE-2021-41224

Description

TensorFlow is an open source platform for machine learning. In affected versions the implementation of SparseFillEmptyRows can be made to trigger a heap OOB access. This occurs whenever the size of indices does not match the size of values. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
tensorflowPyPI
>= 2.6.0, < 2.6.12.6.1
tensorflowPyPI
>= 2.5.0, < 2.5.22.5.2
tensorflowPyPI
< 2.4.42.4.4
tensorflow-cpuPyPI
>= 2.6.0, < 2.6.12.6.1
tensorflow-cpuPyPI
>= 2.5.0, < 2.5.22.5.2
tensorflow-cpuPyPI
< 2.4.42.4.4
tensorflow-gpuPyPI
>= 2.6.0, < 2.6.12.6.1
tensorflow-gpuPyPI
>= 2.5.0, < 2.5.22.5.2
tensorflow-gpuPyPI
< 2.4.42.4.4

Affected products

1

Patches

1
67bfd9feeecf

Make SparseFillEmptyRows validate that the length of `values` must be equal to the number of index tuples.

https://github.com/tensorflow/tensorflowPenporn KoanantakoolSep 30, 2021via ghsa
1 file changed · +8 0
  • tensorflow/core/kernels/sparse_fill_empty_rows_op.cc+8 0 modified
    @@ -24,11 +24,13 @@ limitations under the License.
     #include <vector>
     
     #include "tensorflow/core/framework/op_kernel.h"
    +#include "tensorflow/core/framework/op_requires.h"
     #include "tensorflow/core/framework/register_types.h"
     #include "tensorflow/core/framework/tensor.h"
     #include "tensorflow/core/framework/tensor_util.h"
     #include "tensorflow/core/framework/types.h"
     #include "tensorflow/core/lib/gtl/inlined_vector.h"
    +#include "tensorflow/core/platform/errors.h"
     #include "tensorflow/core/util/sparse/sparse_tensor.h"
     
     namespace tensorflow {
    @@ -222,6 +224,12 @@ void SparseFillEmptyRowsOpImpl(OpKernelContext* context,
                         errors::InvalidArgument("values must be a vector, saw: ",
                                                 values_t.shape().DebugString()),
                         done);
    +  OP_REQUIRES_ASYNC(
    +      context, indices_t.dim_size(0) == values_t.dim_size(0),
    +      errors::InvalidArgument("The length of `values` (", values_t.dim_size(0),
    +                              ") must match the first dimension of `indices` (",
    +                              indices_t.dim_size(0), ")."),
    +      done);
       OP_REQUIRES_ASYNC(
           context, TensorShapeUtils::IsScalar(default_value_t.shape()),
           errors::InvalidArgument("default_value must be a scalar, saw: ",
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

7

News mentions

0

No linked articles in our index yet.