PT-2022-26125 · Google · Tensorflow

Thibaut Goetghebuer-Planchon

·

Published

2022-11-18

·

Updated

2024-03-06

·

CVE-2022-41894

CVSS v3.1

7.1

High

VectorAV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions TensorFlow versions prior to 2.11 TensorFlow versions 2.10.1 and earlier TensorFlow versions 2.9.3 and earlier TensorFlow versions 2.8.4 and earlier
Description The reference kernel of the CONV 3D TRANSPOSE TensorFlow Lite operator wrongly increments the data ptr when adding the bias to the result. Instead of data ptr += num channels; it should be data ptr += output num channels; as if the number of input channels is different than the number of output channels, the wrong result will be returned and a buffer overflow will occur if num channels > output num channels. An attacker can craft a model with a specific number of input channels. It is then possible to write specific values through the bias of the layer outside the bounds of the buffer. This attack only works if the reference kernel resolver is used in the interpreter.
Recommendations For versions prior to 2.11, update to TensorFlow 2.11 or later. For versions 2.10.1 and earlier, update to TensorFlow 2.10.1 or later. For versions 2.9.3 and earlier, update to TensorFlow 2.9.3 or later. For versions 2.8.4 and earlier, update to TensorFlow 2.8.4 or later. As a temporary workaround, consider disabling the CONV 3D TRANSPOSE operator until a patch is available. Restrict access to the reference kernel resolver to minimize the risk of exploitation. Avoid using the experimental op resolver type=tf.lite.experimental.OpResolverType.BUILTIN REF in the interpreter until the issue is resolved.

Exploit

Fix

Buffer Overflow

Weakness Enumeration

Related Identifiers

AZL-11532
BIT-TENSORFLOW-2022-41894
CVE-2022-41894
GHSA-H6Q3-VV32-2CQ5

Affected Products

Tensorflow