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.
This vulnerability is currently undergoing reanalysis and not all information is available. Please check back soon to view the completed vulnerability summary.
Current Description
TensorFlow is an end-to-end open source platform for machine learning. In affected versions the implementation for `tf.raw_ops.BoostedTreesCreateEnsemble` can result in a use after free error if an attacker supplies specially crafted arguments. The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/boosted_trees/resource_ops.cc#L55) uses a reference counted resource and decrements the refcount if the initialization fails, as it should. However, when the code was written, the resource was represented as a naked pointer but later refactoring has changed it to be a smart pointer. Thus, when the pointer leaves the scope, a subsequent `free`-ing of the resource occurs, but this fails to take into account that the refcount has already reached 0, thus the resource has been already freed. During this double-free process, members of the resource object are accessed for cleanup but they are invalid as the entire resource has been freed. We have patched the issue in GitHub commit 5ecec9c6fbdbc6be03295685190a45e7eee726ab. 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. In affected versions the implementation for `tf.raw_ops.BoostedTreesCreateEnsemble` can result in a use after free error if an attacker supplies specially crafted arguments. The [implementation](https://github.com/tensorflow/tensorflow/blob/f24faa153ad31a4b51578f8181d3aaab77a1ddeb/tensorflow/core/kernels/boosted_trees/resource_ops.cc#L55) uses a reference counted resource and decrements the refcount if the initialization fails, as it should. However, when the code was written, the resource was represented as a naked pointer but later refactoring has changed it to be a smart pointer. Thus, when the pointer leaves the scope, a subsequent `free`-ing of the resource occurs, but this fails to take into account that the refcount has already reached 0, thus the resource has been already freed. During this double-free process, members of the resource object are accessed for cleanup but they are invalid as the entire resource has been freed. We have patched the issue in GitHub commit 5ecec9c6fbdbc6be03295685190a45e7eee726ab. 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: The NVD and the CNA have provided the same score. When this occurs only the CNA information is displayed, but the Acceptance Level icon for the CNA is given a checkmark to signify NVD concurrence.
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:P/I:P/A:P)
Added
CVSS V3.1
NIST AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Changed
Reference Type
https://github.com/tensorflow/tensorflow/commit/5ecec9c6fbdbc6be03295685190a45e7eee726ab No Types Assigned
https://github.com/tensorflow/tensorflow/commit/5ecec9c6fbdbc6be03295685190a45e7eee726ab Patch, Third Party Advisory
Changed
Reference Type
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-m7fm-4jfh-jrg6 No Types Assigned
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-m7fm-4jfh-jrg6 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-37652 NVD
Published Date: 08/12/2021 NVD
Last Modified: 08/18/2021
Source: GitHub, Inc.