PT-2021-18274 · Google · Tensorflow

Yakun Zhang

+1

·

Published

2021-05-14

·

Updated

2024-03-06

·

CVE-2021-29523

CVSS v3.1

5.5

Medium

VectorAV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Name of the Vulnerable Software and Affected Versions: TensorFlow versions prior to 2.5.0 TensorFlow version 2.4.2 TensorFlow version 2.3.3 TensorFlow version 2.2.3 TensorFlow version 2.1.4
Description: An attacker can trigger a denial of service via a CHECK-fail in tf.raw ops.AddManySparseToTensorsMap. This occurs because the implementation takes the values specified in sparse shape as dimensions for the output shape. The TensorShape constructor uses a CHECK operation which triggers when InitDims returns a non-OK status. This happens when adding a dimension from the argument results in overflow. The issue is due to a legacy implementation of the constructor and can be prevented by using BuildTensorShapeBase or AddDimWithStatus to handle overflows.
Recommendations: For TensorFlow versions prior to 2.5.0, update to version 2.5.0 or later. For TensorFlow version 2.4.2, apply the patch from GitHub commit 69c68ecbb24dff3fa0e46da0d16c821a2dd22d7c. For TensorFlow version 2.3.3, apply the patch from GitHub commit 69c68ecbb24dff3fa0e46da0d16c821a2dd22d7c. For TensorFlow version 2.2.3, apply the patch from GitHub commit 69c68ecbb24dff3fa0e46da0d16c821a2dd22d7c. For TensorFlow version 2.1.4, apply the patch from GitHub commit 69c68ecbb24dff3fa0e46da0d16c821a2dd22d7c. As a temporary workaround, consider avoiding the use of tf.raw ops.AddManySparseToTensorsMap with large sparse shape values until a patch is applied.

Exploit

Fix

Integer Overflow

Weakness Enumeration

Related Identifiers

BIT-TENSORFLOW-2021-29523
CVE-2021-29523
GHSA-2CPX-427X-Q2C6
PYSEC-2021-160
PYSEC-2021-451
PYSEC-2021-649

Affected Products

Tensorflow