Out-of-bounds Write Affecting tensorflow/tensorflow package, versions [,2.1.4)[2.2.0,2.2.3)[2.3.0,2.3.3)[2.4.0,2.4.2)


Severity

Recommended
0.0
high
0
10

CVSS assessment made by Snyk's Security Team. Learn more

Threat Intelligence

EPSS
0.09% (39th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-UNMANAGED-TENSORFLOWTENSORFLOW-2333350
  • published12 Jan 2022
  • disclosed14 May 2021
  • creditUnknown

Introduced: 14 May 2021

CVE-2021-29571  (opens in a new tab)
CWE-787  (opens in a new tab)

How to fix?

Upgrade tensorflow/tensorflow to version 2.1.4, 2.2.3, 2.3.3, 2.4.2 or higher.

Overview

Affected versions of this package are vulnerable to Out-of-bounds Write. TensorFlow is an end-to-end open source platform for machine learning. The implementation of tf.raw_ops.MaxPoolGradWithArgmax can cause reads outside of bounds of heap allocated data if attacker supplies specially crafted inputs. The implementation(https://github.com/tensorflow/tensorflow/blob/31bd5026304677faa8a0b77602c6154171b9aec1/tensorflow/core/kernels/image/draw_bounding_box_op.cc#L116-L130) assumes that the last element of boxes input is 4, as required by the op. Since this is not checked attackers passing values less than 4 can write outside of bounds of heap allocated objects and cause memory corruption. If the last dimension in boxes is less than 4, accesses similar to tboxes(b, bb, 3) will access data outside of bounds. Further during code execution there are also writes to these indices. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.

CVSS Scores

version 3.1