Skip to content
OpenAdvisories
High · 7.1 CVE-2020-15193 BIT-tensorflow-2020-15193EUVD-2020-0189GHSA-rjjg-hgv6-h69vPYSEC-2020-116PYSEC-2020-273PYSEC-2020-308

Memory corruption in Tensorflow

Published Sep 25, 2020 · Updated Aug 4, 2024 · Assigned by GitHub_M

Description

In Tensorflow before versions 2.2.1 and 2.3.1, the implementation of `dlpack.to_dlpack` can be made to use uninitialized memory resulting in further memory corruption. This is because the pybind11 glue code assumes that the argument is a tensor. However, there is nothing stopping users from passing in a Python object instead of a tensor. The uninitialized memory address is due to a `reinterpret_cast` Since the `PyObject` is a Python object, not a TensorFlow Tensor, the cast to `EagerTensor` fails. The issue is patched in commit 22e07fb204386768e5bcbea563641ea11f96ceb8 and is released in TensorFlow versions 2.2.1, or 2.3.1.

Affected products

VendorProductAffectedFixed
tensorflow tensorflow = 2.2.0, = 2.3.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
openSUSE Leap 15.2 tensorflow2 +3 2.1.2-lp152.7.3.1 openSUSE-SU-2020:1766-1

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI tensorflow >= 2.2.0, < 2.2.1 2.2.1 GHSA-rjjg-hgv6-h69v
PyPI tensorflow >= 2.3.0, < 2.3.1 2.3.1 GHSA-rjjg-hgv6-h69v
PyPI tensorflow < 2.2.1 · >= 2.3.0rc0, < 2.3.1 2.2.1, 2.3.1 PYSEC-2020-116
PyPI tensorflow-cpu >= 2.2.0, < 2.2.1 2.2.1 GHSA-rjjg-hgv6-h69v
PyPI tensorflow-cpu >= 2.3.0, < 2.3.1 2.3.1 GHSA-rjjg-hgv6-h69v
PyPI tensorflow-cpu < 2.2.1 · >= 2.3.0rc0, < 2.3.1 2.2.1, 2.3.1 PYSEC-2020-273
PyPI tensorflow-gpu >= 2.2.0, < 2.2.1 2.2.1 GHSA-rjjg-hgv6-h69v
PyPI tensorflow-gpu >= 2.3.0, < 2.3.1 2.3.1 GHSA-rjjg-hgv6-h69v
PyPI tensorflow-gpu < 2.2.1 · >= 2.3.0rc0, < 2.3.1 2.2.1, 2.3.1 PYSEC-2020-308

Advisories 1

References