一、漏洞信息
漏洞编号:CVE-2021-29571
漏洞归属组件:tensorflow
漏洞归属的版本:2.3.1,1.15.2
CVSS V3.0分值:
BaseScore:7.8 High
Vector:CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
漏洞简述:
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.
漏洞公开时间:2021-05-14
漏洞创建时间:2021-07-28 12:23:22
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2021-29571
漏洞分析指导链接:
https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md
二、漏洞分析结构反馈
影响性分析说明:
TensorFlow 是一个端到端的机器学习开源平台。如果攻击者提供特制的输入,tf.raw_ops.MaxPoolGradWithArgmax
的实现可能导致读取超出堆分配数据的范围。实现(https://github.com/tensorflow/tensorflow/blob/31bd5026304677faa8a0b77602c6154171b9aec1/tensorflow/core/kernels/image/draw_bounding_box_op.cc#L116-L130)假设框的最后一个元素是`4由 [操作](https://www.tensorflow.org/api_docs/python/tf/raw_ops/DrawBoundingBoxesV2)。由于这未被检查,传递小于 4 的值的攻击者可以写入堆分配对象的范围之外并导致内存损坏。如果 boxes
中的最后一个维度小于 4,则类似于 tboxes(b, bb, 3)
的访问将访问边界外的数据。此外,在代码执行期间,还会写入这些索引。该修复将包含在 TensorFlow 2.5.0 中。我们还将在 TensorFlow 2.4.2、TensorFlow 2.3.3、TensorFlow 2.2.3 和 TensorFlow 2.1.4 上挑选此提交,因为它们也受到影响并且仍在支持范围内。
openEuler评分:
7.8
Vector:CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.master(2.3.1):受影响
2.openEuler-21.03(2.3.1):受影响
3.openEuler-21.09(2.3.1):受影响
修复是否涉及abi变化(是/否):
1.master(2.3.1):否
2.openEuler-21.03(2.3.1):否
3.openEuler-21.09(2.3.1):否
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
openEuler-20.09: 受影响
openEuler-21.03: 受影响
影响性分析说明:
TensorFlow 是一个端到端的机器学习开源平台。如果攻击者提供特制的输入,tf.raw_ops.MaxPoolGradWithArgmax
的实现可能导致读取超出堆分配数据的范围。实现(https://github.com/tensorflow/tensorflow/blob/31bd5026304677faa8a0b77602c6154171b9aec1/tensorflow/core/kernels/image/draw_bounding_box_op.cc#L116-L130)假设框的最后一个元素是`4由 [操作](https://www.tensorflow.org/api_docs/python/tf/raw_ops/DrawBoundingBoxesV2)。由于这未被检查,传递小于 4 的值的攻击者可以写入堆分配对象的范围之外并导致内存损坏。如果 boxes
中的最后一个维度小于 4,则类似于 tboxes(b, bb, 3)
的访问将访问边界外的数据。此外,在代码执行期间,还会写入这些索引。该修复将包含在 TensorFlow 2.5.0 中。我们还将在 TensorFlow 2.4.2、TensorFlow 2.3.3、TensorFlow 2.2.3 和 TensorFlow 2.1.4 上挑选此提交,因为它们也受到影响并且仍在支持范围内。
openEuler评分:(评分和向量)
openEulerScore: 7.8 High
Vector:CVSS:
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.master:受影响
2.openEuler-21.03:受影响
3.openEuler-21.09:受影响
修复是否涉及abi变化(是/否):
1.master:否
2.openEuler-21.03:否
3.openEuler-21.09:否
登录 后才可以发表评论