CVE-2021-37647 (CNNVD-202108-1202)
中文标题:
Google TensorFlow代码问题漏洞
英文标题:
Null pointer dereference in `SparseTensorSliceDataset` in TensorFlow
漏洞描述
中文描述:
Google TensorFlow是美国谷歌(Google)公司的一套用于机器学习的端到端开源平台。 TensorFlow 2.6.0 之前版本、2.5.1之前版本、2.4.3之前版本和2.3.4之前版本存在代码问题漏洞,该漏洞源于当用户不提供确定有效稀疏张量的参数时,可以使用`tf.raw_ops.SparseTensorSliceDataset`实现来取消对空指针的引用
英文描述:
TensorFlow is an end-to-end open source platform for machine learning. When a user does not supply arguments that determine a valid sparse tensor, `tf.raw_ops.SparseTensorSliceDataset` implementation can be made to dereference a null pointer. The [implementation](https://github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/kernels/data/sparse_tensor_slice_dataset_op.cc#L240-L251) has some argument validation but fails to consider the case when either `indices` or `values` are provided for an empty sparse tensor when the other is not. If `indices` is empty, then [code that performs validation](https://github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/kernels/data/sparse_tensor_slice_dataset_op.cc#L260-L261) (i.e., checking that the indices are monotonically increasing) results in a null pointer dereference. If `indices` as provided by the user is empty, then `indices` in the C++ code above is backed by an empty `std::vector`, hence calling `indices->dim_size(0)` results in null pointer dereferencing (same as calling `std::vector::at()` on an empty vector). We have patched the issue in GitHub commit 02cc160e29d20631de3859c6653184e3f876b9d7. 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.
CWE类型:
标签:
受影响产品
| 厂商 | 产品 | 版本 | 版本范围 | 平台 | CPE |
|---|---|---|---|---|---|
| tensorflow | tensorflow | >= 2.5.0, < 2.5.1 | - | - |
cpe:2.3:a:tensorflow:tensorflow:>=_2.5.0,_<_2.5.1:*:*:*:*:*:*:*
|
| tensorflow | tensorflow | >= 2.4.0, < 2.4.3 | - | - |
cpe:2.3:a:tensorflow:tensorflow:>=_2.4.0,_<_2.4.3:*:*:*:*:*:*:*
|
| tensorflow | tensorflow | < 2.3.4 | - | - |
cpe:2.3:a:tensorflow:tensorflow:<_2.3.4:*:*:*:*:*:*:*
|
| tensorflow | * | - | - |
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*
|
|
| tensorflow | 2.5.0 | - | - |
cpe:2.3:a:google:tensorflow:2.5.0:*:*:*:*:*:*:*
|
|
| tensorflow | 2.6.0 | - | - |
cpe:2.3:a:google:tensorflow:2.6.0:rc0:*:*:*:*:*:*
|
解决方案
中文解决方案:
英文解决方案:
临时解决方案:
CVSS评分详情
3.1 (cna)
HIGHCVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
时间信息
利用信息
数据源详情
| 数据源 | 记录ID | 版本 | 提取时间 |
|---|---|---|---|
| CVE | cve_CVE-2021-37647 |
2025-11-11 15:21:02 | 2025-11-11 07:36:58 |
| NVD | nvd_CVE-2021-37647 |
2025-11-11 14:57:40 | 2025-11-11 07:45:16 |
| CNNVD | cnnvd_CNNVD-202108-1202 |
2025-11-11 15:10:42 | 2025-11-11 07:56:51 |
版本与语言
安全公告
变更历史
查看详细变更
- vulnerability_type: 未提取 -> 代码问题
- cnnvd_id: 未提取 -> CNNVD-202108-1202
- data_sources: ['cve', 'nvd'] -> ['cnnvd', 'cve', 'nvd']
查看详细变更
- affected_products_count: 3 -> 6
- data_sources: ['cve'] -> ['cve', 'nvd']