VYPR
Moderate severityNVD Advisory· Published May 14, 2021· Updated Aug 3, 2024

Incomplete validation in `tf.raw_ops.CTCLoss`

CVE-2021-29613

Description

TensorFlow is an end-to-end open source platform for machine learning. Incomplete validation in tf.raw_ops.CTCLoss allows an attacker to trigger an OOB read from heap. The fix will be included in TensorFlow 2.5.0. We will also cherrypick these commits on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.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.1.42.1.4
tensorflowPyPI
>= 2.2.0, < 2.2.32.2.3
tensorflowPyPI
>= 2.3.0, < 2.3.32.3.3
tensorflowPyPI
>= 2.4.0, < 2.4.22.4.2
tensorflow-cpuPyPI
< 2.1.42.1.4
tensorflow-cpuPyPI
>= 2.2.0, < 2.2.32.2.3
tensorflow-cpuPyPI
>= 2.3.0, < 2.3.32.3.3
tensorflow-cpuPyPI
>= 2.4.0, < 2.4.22.4.2
tensorflow-gpuPyPI
< 2.1.42.1.4
tensorflow-gpuPyPI
>= 2.2.0, < 2.2.32.2.3
tensorflow-gpuPyPI
>= 2.3.0, < 2.3.32.3.3
tensorflow-gpuPyPI
>= 2.4.0, < 2.4.22.4.2

Affected products

1

Patches

2
14607c070704

Fix nullptr deref in `tf.raw_ops.CTCLoss`.

https://github.com/tensorflow/tensorflowAmit PatankarMay 6, 2021via ghsa
1 file changed · +3 0
  • tensorflow/core/kernels/ctc_loss_op.cc+3 0 modified
    @@ -109,6 +109,9 @@ class CTCLossOp : public OpKernel {
     
         const TensorShape& inputs_shape = inputs->shape();
         const int64 max_time = inputs_shape.dim_size(0);
    +    OP_REQUIRES(ctx, max_time != 0,
    +                errors::InvalidArgument(
    +                    "Max time or first dimension of input cannot be 0."));
         const int64 batch_size = inputs_shape.dim_size(1);
         const int64 num_classes_raw = inputs_shape.dim_size(2);
         OP_REQUIRES(
    
4504a081af71

Fix OOB read issue with `tf.raw_ops.CTCLoss`.

https://github.com/tensorflow/tensorflowAmit PatankarMay 6, 2021via ghsa
1 file changed · +4 0
  • tensorflow/core/kernels/ctc_loss_op.cc+4 0 modified
    @@ -100,6 +100,10 @@ class CTCLossOp : public OpKernel {
                     errors::InvalidArgument("sequence_length is not a vector"));
         OP_REQUIRES(ctx, TensorShapeUtils::IsMatrix(labels_indices->shape()),
                     errors::InvalidArgument("labels_indices is not a matrix"));
    +    OP_REQUIRES(ctx, labels_indices->dim_size(1) > 1,
    +                errors::InvalidArgument(
    +                    "labels_indices second dimension must be >= 1. Received ",
    +                    labels_indices->dim_size(1)));
         OP_REQUIRES(ctx, TensorShapeUtils::IsVector(labels_values->shape()),
                     errors::InvalidArgument("labels_values is not a vector"));
     
    

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

8

News mentions

0

No linked articles in our index yet.