Skip to content
OpenAdvisories
High · 7.3 CVE-2021-37654 BIT-tensorflow-2021-37654EUVD-2021-0380GHSA-2r8p-fg3c-wcj4PYSEC-2021-276PYSEC-2021-567PYSEC-2021-765

Heap OOB and CHECK fail in `ResourceGather` in TensorFlow

Published Aug 12, 2021 · Updated Aug 4, 2024 · Assigned by GitHub_M

Description

TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can trigger a crash via a `CHECK`-fail in debug builds of TensorFlow using `tf.raw_ops.ResourceGather` or a read from outside the bounds of heap allocated data in the same API in a release build. The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/resource_variable_ops.cc#L660-L668) does not check that the `batch_dims` value that the user supplies is less than the rank of the input tensor. Since the implementation uses several for loops over the dimensions of `tensor`, this results in reading data from outside the bounds of heap allocated buffer backing the tensor. We have patched the issue in GitHub commit bc9c546ce7015c57c2f15c168b3d9201de679a1d. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.

Affected products

VendorProductAffectedFixed
tensorflow tensorflow >= 2.5.0, < 2.5.1, >= 2.4.0, < 2.4.3, < 2.3.4 —

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
SUSE Package Hub 15 SP3 bazel-skylib1.0.3 1.0.3-bp153.2.1 openSUSE-SU-2022:10014-1
SUSE Package Hub 15 SP3 bazel3.7 3.7.2-bp153.4.1 openSUSE-SU-2022:10014-1
SUSE Package Hub 15 SP3 tensorflow2 +3 2.6.0-bp153.2.3.1 openSUSE-SU-2022:10014-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.3 bazel-skylib1.0.3 1.0.3-bp153.2.1 openSUSE-SU-2022:10014-1
openSUSE Leap 15.3 bazel3.7 3.7.2-bp153.4.1 openSUSE-SU-2022:10014-1
openSUSE Leap 15.3 tensorflow2 +3 2.6.0-bp153.2.3.1 openSUSE-SU-2022:10014-1

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI tensorflow < 2.3.4 2.3.4 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow >= 2.4.0, < 2.4.3 2.4.3 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow >= 2.5.0, < 2.5.1 2.5.1 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-276
PyPI tensorflow-cpu < 2.3.4 2.3.4 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow-cpu >= 2.4.0, < 2.4.3 2.4.3 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow-cpu >= 2.5.0, < 2.5.1 2.5.1 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow-cpu >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-567
PyPI tensorflow-gpu < 2.3.4 2.3.4 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow-gpu >= 2.4.0, < 2.4.3 2.4.3 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow-gpu >= 2.5.0, < 2.5.1 2.5.1 GHSA-2r8p-fg3c-wcj4
PyPI tensorflow-gpu >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-765

Advisories 1

References