PT-2021-18359 · Google · Tensorflow

Yakun Zhang

+1

·

Published

2021-05-14

·

Updated

2024-03-06

·

CVE-2021-29608

CVSS v3.1

7.8

High

VectorAV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions TensorFlow versions prior to 2.5.0 TensorFlow versions 2.4.1 and earlier TensorFlow versions 2.3.2 and earlier TensorFlow versions 2.2.2 and earlier TensorFlow versions 2.1.3 and earlier
Description Due to a lack of validation in tf.raw ops.RaggedTensorToTensor, an attacker can exploit undefined behavior if input arguments are empty. The implementation only checks that one of the tensors is not empty, but does not check for the other ones. There are multiple DCHECK validations to prevent heap out-of-bounds, but these are no-op in release builds, hence they don't prevent anything.
Recommendations For TensorFlow versions prior to 2.5.0, update to TensorFlow 2.5.0 or later. For TensorFlow versions 2.4.1 and earlier, update to TensorFlow 2.4.2 or later. For TensorFlow versions 2.3.2 and earlier, update to TensorFlow 2.3.3 or later. For TensorFlow versions 2.2.2 and earlier, update to TensorFlow 2.2.3 or later. For TensorFlow versions 2.1.3 and earlier, update to TensorFlow 2.1.4 or later. As a temporary workaround, consider adding input validation to ensure that all tensors are not empty before calling tf.raw ops.RaggedTensorToTensor.

Exploit

Fix

Weakness Enumeration

Related Identifiers

BIT-TENSORFLOW-2021-29608
CVE-2021-29608
GHSA-RGVQ-PCVF-HX75
PYSEC-2021-245
PYSEC-2021-536
PYSEC-2021-734

Affected Products

Tensorflow