Crash in `tf.math.segment_*` operations
Description
TensorFlow is an open source platform for machine learning. In affected versions the implementation of tf.math.segment_* operations results in a CHECK-fail related abort (and denial of service) if a segment id in segment_ids is large. This is similar to CVE-2021-29584 (and similar other reported vulnerabilities in TensorFlow, localized to specific APIs): the implementation (both on CPU and GPU) computes the output shape using AddDim. However, if the number of elements in the tensor overflows an int64_t value, AddDim results in a CHECK failure which provokes a std::abort. Instead, code should use AddDimWithStatus. 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.
| Package | Affected versions | Patched versions |
|---|---|---|
tensorflowPyPI | >= 2.6.0, < 2.6.1 | 2.6.1 |
tensorflowPyPI | >= 2.5.0, < 2.5.2 | 2.5.2 |
tensorflowPyPI | < 2.4.4 | 2.4.4 |
tensorflow-cpuPyPI | >= 2.6.0, < 2.6.1 | 2.6.1 |
tensorflow-cpuPyPI | >= 2.5.0, < 2.5.2 | 2.5.2 |
tensorflow-cpuPyPI | < 2.4.4 | 2.4.4 |
tensorflow-gpuPyPI | >= 2.6.0, < 2.6.1 | 2.6.1 |
tensorflow-gpuPyPI | >= 2.5.0, < 2.5.2 | 2.5.2 |
tensorflow-gpuPyPI | < 2.4.4 | 2.4.4 |
Affected products
1- Range: >= 2.6.0, < 2.6.1
Patches
1e9c81c1e1a9cMerge pull request #51733 from yongtang:46888-tf.math.segment_
2 files changed · +21 −2
tensorflow/core/kernels/segment_reduction_ops_impl.h+7 −2 modified@@ -110,7 +110,9 @@ class SegmentReductionOp : public OpKernel { errors::InvalidArgument("Shape must be at least rank 1")); TensorShape output_shape = input.shape(); - output_shape.set_dim(0, output_rows); + // Since we're changing the first dimension of the shape, we need to make + // sure the new shape won't overflow. + OP_REQUIRES_OK(context, output_shape.SetDimWithStatus(0, output_rows)); // Note that we do not initialize the output buffer with a default value, so // we need to explicitly set missing indices to the default value. @@ -290,7 +292,10 @@ class SegmentReductionGPUOp : public AsyncOpKernel { done); TensorShape output_shape = input.shape(); - output_shape.set_dim(0, output_rows); + // Since we're changing the first dimension of the shape, we need to make + // sure the new shape won't overflow. + OP_REQUIRES_OK_ASYNC(context, + output_shape.SetDimWithStatus(0, output_rows), done); Tensor* output = nullptr; OP_REQUIRES_OK_ASYNC(
tensorflow/python/kernel_tests/segment_reduction_ops_test.py+14 −0 modified@@ -266,6 +266,20 @@ def testDataInvalid(self): data=np.uint16(10), segment_ids=np.array([]).astype("int64")) self.evaluate(s) + def testInvalidIds(self): + # Test case for GitHub issue 46888. + for op in [ + math_ops.segment_max, + math_ops.segment_min, + math_ops.segment_mean, + math_ops.segment_sum, + math_ops.segment_prod, + ]: + with self.cached_session(use_gpu=False): + with self.assertRaises((ValueError, errors_impl.InternalError)): + s = op(data=np.ones((1, 10, 1)), segment_ids=[1676240524292489355]) + self.evaluate(s) + class UnsortedSegmentTest(SegmentReductionHelper):
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
9- github.com/advisories/GHSA-cq76-mxrc-vchhghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2021-41195ghsaADVISORY
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-844.yamlghsaWEB
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-846.yamlghsaWEB
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-842.yamlghsaWEB
- github.com/tensorflow/tensorflow/commit/e9c81c1e1a9cd8dd31f4e83676cab61b60658429ghsax_refsource_MISCWEB
- github.com/tensorflow/tensorflow/issues/46888ghsax_refsource_MISCWEB
- github.com/tensorflow/tensorflow/pull/51733ghsax_refsource_MISCWEB
- github.com/tensorflow/tensorflow/security/advisories/GHSA-cq76-mxrc-vchhghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.