Skip to content
OpenAdvisories
Medium · 5.5 CVE-2021-37669 BIT-tensorflow-2021-37669EUVD-2021-0395GHSA-vmjw-c2vp-p33cPYSEC-2021-291PYSEC-2021-582PYSEC-2021-780

Crash in NMS ops caused by integer conversion to unsigned 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 cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. 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-vmjw-c2vp-p33c
PyPI tensorflow >= 2.4.0, < 2.4.3 2.4.3 GHSA-vmjw-c2vp-p33c
PyPI tensorflow >= 2.5.0, < 2.5.1 2.5.1 GHSA-vmjw-c2vp-p33c
PyPI tensorflow >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-291
PyPI tensorflow-cpu < 2.3.4 2.3.4 GHSA-vmjw-c2vp-p33c
PyPI tensorflow-cpu >= 2.4.0, < 2.4.3 2.4.3 GHSA-vmjw-c2vp-p33c
PyPI tensorflow-cpu >= 2.5.0, < 2.5.1 2.5.1 GHSA-vmjw-c2vp-p33c
PyPI tensorflow-cpu >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-582
PyPI tensorflow-gpu < 2.3.4 2.3.4 GHSA-vmjw-c2vp-p33c
PyPI tensorflow-gpu >= 2.4.0, < 2.4.3 2.4.3 GHSA-vmjw-c2vp-p33c
PyPI tensorflow-gpu >= 2.5.0, < 2.5.1 2.5.1 GHSA-vmjw-c2vp-p33c
PyPI tensorflow-gpu >= 2.3.0, < 2.3.4 · >= 2.4.0, < 2.4.3 2.3.4, 2.4.3 PYSEC-2021-780

Advisories 1

References