You are viewing this page in an unauthorized frame window.
This is a potential security issue, you are being redirected to https://nvd.nist.gov
An official website of the United States government
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
Secure .gov websites use HTTPS
A lock () or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.
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.
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.
NVD Analysts use publicly available information to associate vector strings and CVSS scores. We also display any CVSS information provided within the CVE List from the CNA.
Note: It is possible that the NVD CVSS may not match that of the CNA. The most common reason for this is that publicly available information does not provide sufficient detail or that information simply was not available at the time the CVSS vector string was assigned.
NVD Analysts use publicly available information to associate vector strings and CVSS scores. We also display any CVSS information provided within the CVE List from the CNA.
Note: NVD Analysts have published a CVSS score for this CVE based on publicly available information at the time of analysis. The CNA has not provided a score within the CVE List.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving NIST webspace.
We have provided these links to other web sites because they
may have information that would be of interest to you. No
inferences should be drawn on account of other sites being
referenced, or not, from this page. There may be other web
sites that are more appropriate for your purpose. NIST does
not necessarily endorse the views expressed, or concur with
the facts presented on these sites. Further, NIST does not
endorse any commercial products that may be mentioned on
these sites. Please address comments about this page to nvd@nist.gov.
OR
*cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.3.0 up to (excluding) 2.3.4
*cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.4.0 up to (excluding) 2.4.3
*cpe:2.3:a:google:tensorflow:2.5.0:*:*:*:*:*:*:*
*cpe:2.3:a:google:tensorflow:2.6.0:rc0:*:*:*:*:*:*
*cpe:2.3:a:google:tensorflow:2.6.0:rc1:*:*:*:*:*:*
*cpe:2.3:a:google:tensorflow:2.6.0:rc2:*:*:*:*:*:*
Added
CVSS V2
NIST (AV:L/AC:L/Au:N/C:N/I:N/A:P)
Added
CVSS V3.1
NIST AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Changed
Reference Type
https://github.com/tensorflow/tensorflow/commit/02cc160e29d20631de3859c6653184e3f876b9d7 No Types Assigned
https://github.com/tensorflow/tensorflow/commit/02cc160e29d20631de3859c6653184e3f876b9d7 Patch, Third Party Advisory
Changed
Reference Type
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-c5x2-p679-95wc No Types Assigned
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-c5x2-p679-95wc Third Party Advisory
CPE Deprecation Remap8/17/2021 9:23:17 AM
Action
Type
Old Value
New Value
Changed
CPE Configuration
OR
*cpe:2.3:a:tensorflow:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.5.0 from (including) 2.5.1
OR
*cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.5.0 from (including) 2.5.1
CPE Deprecation Remap8/17/2021 9:23:09 AM
Action
Type
Old Value
New Value
Changed
CPE Configuration
OR
*cpe:2.3:a:tensorflow:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.4.0 from (including) 2.4.3
OR
*cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.4.0 from (including) 2.4.3
CPE Deprecation Remap8/17/2021 9:22:56 AM
Action
Type
Old Value
New Value
Changed
CPE Configuration
OR
*cpe:2.3:a:tensorflow:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.3.0 from (including) 2.3.4
OR
*cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* versions from (including) 2.3.0 from (including) 2.3.4
CPE Deprecation Remap8/17/2021 9:21:35 AM
Action
Type
Old Value
New Value
Changed
CPE Configuration
OR
*cpe:2.3:a:tensorflow:tensorflow:2.6.0:rc0:*:*:*:*:*:*
OR
*cpe:2.3:a:google:tensorflow:2.6.0:rc0:*:*:*:*:*:*
CPE Deprecation Remap8/17/2021 9:21:23 AM
Action
Type
Old Value
New Value
Changed
CPE Configuration
OR
*cpe:2.3:a:tensorflow:tensorflow:2.6.0:rc1:*:*:*:*:*:*
OR
*cpe:2.3:a:google:tensorflow:2.6.0:rc1:*:*:*:*:*:*
CPE Deprecation Remap8/17/2021 9:21:15 AM
Action
Type
Old Value
New Value
Changed
CPE Configuration
OR
*cpe:2.3:a:tensorflow:tensorflow:2.6.0:rc2:*:*:*:*:*:*
OR
*cpe:2.3:a:google:tensorflow:2.6.0:rc2:*:*:*:*:*:*
Quick Info
CVE Dictionary Entry: CVE-2021-37647 NVD
Published Date: 08/12/2021 NVD
Last Modified: 08/18/2021
Source: GitHub, Inc.