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
| Vector | AV: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
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Tensorflow