{"cve":"CVE-2020-15205","nvd":{"published":"2020-09-25T19:15:15.823","modified":"2026-06-17T02:56:15.777","status":"Modified","description":"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.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8},"cwes":["CWE-787","CWE-119","CWE-122"],"references":["http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html","https://github.com/tensorflow/tensorflow/commit/0462de5b544ed4731aa2fb23946ac22c01856b80","https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1","https://github.com/tensorflow/tensorflow/security/advisories/GHSA-g7p5-5759-qv46","http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html"],"products":["google:tensorflow","opensuse:leap"],"source":"nvd","synced_at":"2026-10-19T21:09:53.489947993+00:00"},"epss":{"cve":"CVE-2020-15205","score":0.01029,"percentile":0.63686,"date":"2026-10-31"},"kev":null,"osv":[{"id":"GHSA-g7p5-5759-qv46","url":"https://osv.dev/vulnerability/GHSA-g7p5-5759-qv46","summary":"Data leak in Tensorflow","modified":"2026-07-08T06:00:32.157312876Z","packages":[{"ecosystem":"PyPI","name":"tensorflow","purl":"pkg:pypi/tensorflow","ranges":["<1.15.4"],"fixed":["1.15.4"]},{"ecosystem":"PyPI","name":"tensorflow","purl":"pkg:pypi/tensorflow","ranges":[">=2.0.0 <2.0.3"],"fixed":["2.0.3"]},{"ecosystem":"PyPI","name":"tensorflow","purl":"pkg:pypi/tensorflow","ranges":[">=2.1.0 <2.1.2"],"fixed":["2.1.2"]},{"ecosystem":"PyPI","name":"tensorflow","purl":"pkg:pypi/tensorflow","ranges":[">=2.2.0 <2.2.1"],"fixed":["2.2.1"]},{"ecosystem":"PyPI","name":"tensorflow","purl":"pkg:pypi/tensorflow","ranges":[">=2.3.0 <2.3.1"],"fixed":["2.3.1"]},{"ecosystem":"PyPI","name":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","ranges":["<1.15.4"],"fixed":["1.15.4"]},{"ecosystem":"PyPI","name":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","ranges":[">=2.0.0 <2.0.3"],"fixed":["2.0.3"]},{"ecosystem":"PyPI","name":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","ranges":[">=2.1.0 <2.1.2"],"fixed":["2.1.2"]},{"ecosystem":"PyPI","name":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","ranges":[">=2.2.0 <2.2.1"],"fixed":["2.2.1"]},{"ecosystem":"PyPI","name":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","ranges":[">=2.3.0 <2.3.1"],"fixed":["2.3.1"]},{"ecosystem":"PyPI","name":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","ranges":["<1.15.4"],"fixed":["1.15.4"]},{"ecosystem":"PyPI","name":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","ranges":[">=2.0.0 <2.0.3"],"fixed":["2.0.3"]},{"ecosystem":"PyPI","name":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","ranges":[">=2.1.0 <2.1.2"],"fixed":["2.1.2"]},{"ecosystem":"PyPI","name":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","ranges":[">=2.2.0 <2.2.1"],"fixed":["2.2.1"]},{"ecosystem":"PyPI","name":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","ranges":[">=2.3.0 <2.3.1"],"fixed":["2.3.1"]}]},{"id":"PYSEC-2020-128","url":"https://osv.dev/vulnerability/PYSEC-2020-128","summary":"","modified":"2023-12-06T01:00:16.942992Z","packages":[{"ecosystem":"PyPI","name":"tensorflow","purl":"pkg:pypi/tensorflow","ranges":["<1.15.4",">=2.0.0 <2.0.3",">=2.1.0 <2.1.2",">=2.2.0 <2.2.1",">=2.3.0 <2.3.1"],"fixed":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"]}]},{"id":"PYSEC-2020-285","url":"https://osv.dev/vulnerability/PYSEC-2020-285","summary":"","modified":"2023-12-06T01:00:16.942992Z","packages":[{"ecosystem":"PyPI","name":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","ranges":["<1.15.4",">=2.0.0 <2.0.3",">=2.1.0 <2.1.2",">=2.2.0 <2.2.1",">=2.3.0 <2.3.1"],"fixed":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"]}]},{"id":"PYSEC-2020-320","url":"https://osv.dev/vulnerability/PYSEC-2020-320","summary":"","modified":"2023-12-06T01:00:16.942992Z","packages":[{"ecosystem":"PyPI","name":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","ranges":["<1.15.4",">=2.0.0 <2.0.3",">=2.1.0 <2.1.2",">=2.2.0 <2.2.1",">=2.3.0 <2.3.1"],"fixed":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}