Skip to content
OpenAdvisories
Medium · 6.6 CVE-2021-37690 BIT-tensorflow-2021-37690EUVD-2021-0416GHSA-3hxh-8cp2-g4hgPYSEC-2021-312PYSEC-2021-603PYSEC-2021-801

Use after free and segfault in shape inference functions 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 when running shape functions, some functions (such as `MutableHashTableShape`) produce extra output information in the form of a `ShapeAndType` struct. The shapes embedded in this struct are owned by an inference context that is cleaned up almost immediately; if the upstream code attempts to access this shape information, it can trigger a segfault. `ShapeRefiner` is mitigating this for normal output shapes by cloning them (and thus putting the newly created shape under ownership of an inference context that will not die), but we were not doing the same for shapes and types. This commit fixes that by doing similar logic on output shapes and types. We have patched the issue in GitHub commit ee119d4a498979525046fba1c3dd3f13a039fbb1. 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-3hxh-8cp2-g4hg
PyPI tensorflow >= 2.4.0, < 2.4.3 2.4.3 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow >= 2.5.0, < 2.5.1 2.5.1 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-312
PyPI tensorflow-cpu < 2.3.4 2.3.4 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow-cpu >= 2.4.0, < 2.4.3 2.4.3 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow-cpu >= 2.5.0, < 2.5.1 2.5.1 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow-cpu >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-603
PyPI tensorflow-gpu < 2.3.4 2.3.4 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow-gpu >= 2.4.0, < 2.4.3 2.4.3 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow-gpu >= 2.5.0, < 2.5.1 2.5.1 GHSA-3hxh-8cp2-g4hg
PyPI tensorflow-gpu >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-801

Advisories 1

References