Vulnerability Details : CVE-2020-15205
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the `data_splits` argument of `tf.raw_ops.StringNGrams` lacks validation. This allows a user to pass values that can cause heap overflow errors and even leak contents of memory In the linked code snippet, all the binary strings after `ee ff` are contents from the memory stack. Since these can contain return addresses, this data leak can be used to defeat ASLR. The issue is patched in commit 0462de5b544ed4731aa2fb23946ac22c01856b80, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.
Vulnerability category: OverflowMemory Corruption
Products affected by CVE-2020-15205
- cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*
- cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*
- cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*
- cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*
- cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*
- cpe:2.3:o:opensuse:leap:15.2:*:*:*:*:*:*:*
Exploit prediction scoring system (EPSS) score for CVE-2020-15205
0.20%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 58 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2020-15205
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
7.5
|
HIGH | AV:N/AC:L/Au:N/C:P/I:P/A:P |
10.0
|
6.4
|
NIST | |
9.8
|
CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
3.9
|
5.9
|
NIST | |
9.0
|
CRITICAL | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H |
2.2
|
6.0
|
GitHub, Inc. |
CWE ids for CVE-2020-15205
-
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.Assigned by: security-advisories@github.com (Secondary)
-
A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().Assigned by: security-advisories@github.com (Secondary)
-
The product writes data past the end, or before the beginning, of the intended buffer.Assigned by: nvd@nist.gov (Primary)
References for CVE-2020-15205
-
https://github.com/tensorflow/tensorflow/security/advisories/GHSA-g7p5-5759-qv46
Data leak in `tf.raw_ops.StringNGrams` · Advisory · tensorflow/tensorflow · GitHubExploit;Third Party Advisory
-
https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1
Release TensorFlow 2.3.1 · tensorflow/tensorflow · GitHubThird Party Advisory
-
http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html
[security-announce] openSUSE-SU-2020:1766-1: moderate: Security update fMailing List;Third Party Advisory
-
https://github.com/tensorflow/tensorflow/commit/0462de5b544ed4731aa2fb23946ac22c01856b80
Validate `data_splits` for `tf.StringNGrams`. · tensorflow/tensorflow@0462de5 · GitHubPatch;Third Party Advisory
Jump to