{"id":"CVE-2020-15205","aliases":["BIT-tensorflow-2020-15205","EUVD-2020-0201","GHSA-g7p5-5759-qv46","PYSEC-2020-128","PYSEC-2020-285","PYSEC-2020-320","openSUSE-SU-2020:1766-1","openSUSE-SU-2024:12116-1"],"status":"published","title":"Data leak in Tensorflow","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.","severity":{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.01029,"percentile":0.63912,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-119","CWE-122","CWE-787"],"published":"2020-09-25T18:28:38Z","modified":"2026-10-20T14:10:32Z","fixes":[{"ecosystem":"PyPI","package":"tensorflow","fixed_in":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"tensorflow-cpu","fixed_in":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"tensorflow-gpu","fixed_in":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"tensorflow","fixed_in":["1.15.4","2.0.3","2.1.2","2.2.1","2.3.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.2"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"last_affected":"2.2.0"},{"fixed":"2.2.1"}]}],"versions":["2.2.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"last_affected":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.2"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"last_affected":"2.2.0"},{"fixed":"2.2.1"}]}],"versions":["2.2.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"last_affected":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.2"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"last_affected":"2.2.0"},{"fixed":"2.2.1"}]}],"versions":["2.2.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"last_affected":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"osv","ecosystem":"Bitnami","package":"tensorflow","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.15.4"},{"introduced":"2.0.0"},{"fixed":"2.0.3"},{"introduced":"2.1.0"},{"fixed":"2.1.2"},{"introduced":"2.2.0"},{"fixed":"2.2.1"},{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"}]}],"versions":["0.12.0","0.12.1","1.0.0","1.0.1","1.1.0","1.10.0","1.10.1","1.11.0","1.12.0","1.12.2","1.12.3","1.13.1","1.13.2","1.14.0","1.15.0","1.15.2","1.15.3","1.2.0","1.2.1","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.8.0","1.9.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.3"}]}],"versions":["2.0.0","2.0.1","2.0.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.2"}]}],"versions":["2.1.0","2.1.1"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"fixed":"2.2.1"}]}],"versions":["2.2.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"}]}],"versions":["1.15.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.3"}]}]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.2"}]}],"versions":["2.1.0","2.1.1"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"fixed":"2.2.1"}]}],"versions":["2.2.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"}]}],"versions":["0.12.0","0.12.1","1.0.0","1.0.1","1.1.0","1.10.0","1.10.1","1.11.0","1.12.0","1.12.2","1.12.3","1.13.1","1.13.2","1.14.0","1.15.0","1.15.2","1.15.3","1.2.0","1.2.1","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.8.0","1.9.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.0.3"}]}],"versions":["2.0.0","2.0.1","2.0.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.1.0"},{"fixed":"2.1.2"}]}],"versions":["2.1.0","2.1.1"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.0"},{"fixed":"2.2.1"}]}],"versions":["2.2.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["2.3.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"0462de5b544ed4731aa2fb23946ac22c01856b80"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"},{"introduced":"2.0.0"},{"fixed":"2.0.3"},{"introduced":"2.1.0"},{"fixed":"2.1.2"},{"introduced":"2.2.0"},{"fixed":"2.2.1"},{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["0.12.0rc0","0.12.0rc1","0.12.0","0.12.1","1.0.0","1.0.1","1.1.0rc0","1.1.0rc1","1.1.0rc2","1.1.0","1.2.0rc0","1.2.0rc1","1.2.0rc2","1.2.0","1.2.1","1.3.0rc0","1.3.0rc1","1.3.0rc2","1.3.0","1.4.0rc0","1.4.0rc1","1.4.0","1.4.1","1.5.0rc0","1.5.0rc1","1.5.0","1.5.1","1.6.0rc0","1.6.0rc1","1.6.0","1.7.0rc0","1.7.0rc1","1.7.0","1.7.1","1.8.0rc0","1.8.0rc1","1.8.0","1.9.0rc0","1.9.0rc1","1.9.0rc2","1.9.0","1.10.0rc0","1.10.0rc1","1.10.0","1.10.1","1.11.0rc0","1.11.0rc1","1.11.0rc2","1.11.0","1.12.0rc0","1.12.0rc1","1.12.0rc2","1.12.0","1.12.2","1.12.3","1.13.0rc0","1.13.0rc1","1.13.0rc2","1.13.1","1.13.2","1.14.0rc0","1.14.0rc1","1.14.0","1.15.0rc0","1.15.0rc1","1.15.0rc2","1.15.0rc3","1.15.0","1.15.2","1.15.3","2.0.0","2.0.1","2.0.2","2.1.0","2.1.1","2.2.0","2.3.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"0462de5b544ed4731aa2fb23946ac22c01856b80"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"},{"introduced":"2.0.0"},{"fixed":"2.0.3"},{"introduced":"2.1.0"},{"fixed":"2.1.2"},{"introduced":"2.2.0"},{"fixed":"2.2.1"},{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["1.15.0","2.1.0","2.1.1","2.2.0","2.3.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"0462de5b544ed4731aa2fb23946ac22c01856b80"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.15.4"},{"introduced":"2.0.0"},{"fixed":"2.0.3"},{"introduced":"2.1.0"},{"fixed":"2.1.2"},{"introduced":"2.2.0"},{"fixed":"2.2.1"},{"introduced":"2.3.0"},{"fixed":"2.3.1"}]}],"versions":["0.12.0","0.12.1","1.0.0","1.0.1","1.1.0","1.10.0","1.10.1","1.11.0","1.12.0","1.12.2","1.12.3","1.13.1","1.13.2","1.14.0","1.15.0","1.15.2","1.15.3","1.2.0","1.2.1","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.8.0","1.9.0","2.0.0","2.0.1","2.0.2","2.1.0","2.1.1","2.2.0","2.3.0"]},{"source":"osv","ecosystem":"openSUSE:Leap 15.2","package":"tensorflow2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.2-lp152.7.3.1"}]}],"bundled":16},{"source":"osv","ecosystem":"openSUSE:Leap 15.2","package":"tensorflow2-lite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.2-lp152.7.3.1"}]}],"bundled":16},{"source":"osv","ecosystem":"openSUSE:Leap 15.2","package":"tensorflow2_2_1_2-gnu-hpc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.2-lp152.7.3.1"}]}],"bundled":16},{"source":"osv","ecosystem":"openSUSE:Leap 15.2","package":"tensorflow2_2_1_2-gnu-openmpi2-hpc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.2-lp152.7.3.1"}]}],"bundled":16}],"products":[{"vendor":"google","product":"tensorflow"},{"vendor":"opensuse","product":"leap"},{"vendor":"tensorflow","product":"tensorflow"}],"references":[{"url":"https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-g7p5-5759-qv46","tags":["x_refsource_CONFIRM","x_transferred","Exploit","Third Party Advisory","advisory","evidence","web"]},{"url":"https://github.com/tensorflow/tensorflow/commit/0462de5b544ed4731aa2fb23946ac22c01856b80","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","advisory","fix","web"]},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","Mailing List","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-15205","tags":["web","advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-285.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2020-320.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2020-128.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-g7p5-5759-qv46"},{"url":"https://github.com/tensorflow/tensorflow","tags":["package"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/TNMEEN772D6LWSHNB64QFB5TB3CZZEF4/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1173314","tags":["report"]},{"url":"https://bugzilla.suse.com/1175099","tags":["report"]},{"url":"https://bugzilla.suse.com/1175789","tags":["report"]},{"url":"https://bugzilla.suse.com/1177022","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15190","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15191","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15192","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15193","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15194","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15195","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15202","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15203","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15204","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15205","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15206","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15207","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15208","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15209","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15210","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15211","tags":["web"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2020-10531","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26266","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26270","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-22922","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-22923","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-22926","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37635","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37636","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37637","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37638","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37639","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37640","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37641","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37642","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37643","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37644","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37645","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37646","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37647","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37648","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37649","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37650","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37651","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37652","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37653","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37654","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37655","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37656","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37657","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37658","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37659","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37660","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37661","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37662","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37663","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37664","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37665","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37666","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37667","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37668","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37669","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37670","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37671","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37672","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37673","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37674","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37675","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37676","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37677","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37678","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37679","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37680","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37681","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37682","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37683","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37684","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37685","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37686","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37687","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37688","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37689","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37690","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37691","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37692","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41195","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41196","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41197","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41198","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41199","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41200","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41201","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41202","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41203","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41204","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41205","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41206","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41207","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41208","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41209","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41210","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41211","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41212","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41213","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41214","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41215","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41216","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41217","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41218","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41219","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41220","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41221","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41222","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41223","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41224","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41225","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41226","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41227","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41228","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21725","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21726","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21727","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21728","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21729","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21730","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21731","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21732","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21733","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21734","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21735","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21736","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21737","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21738","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21739","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21740","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21741","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23557","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23558","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23559","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23560","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23561","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23562","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23563","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23564","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23565","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23566","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23567","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23568","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23569","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23570","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23571","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23572","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23573","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23574","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23575","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23576","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23577","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23578","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23579","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23580","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23581","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23582","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23583","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23584","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23585","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23586","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23587","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23588","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23589","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23590","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23591","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23594","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23595","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2020-15205","title":"Data leak in Tensorflow","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.","status":"published","published":"2020-09-25T18:45:57Z","modified":"2024-08-04T13:08:22.698Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-122","CWE-119"],"updated_at":"2026-11-02T14:35:50.228781Z"}],"euvd":[{"id":"EUVD-2020-0201","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.","status":"published","published":"2020-09-25T18:45:57Z","modified":"2024-08-04T13:08:22Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T03:07:33.100327Z"}],"ghsa":[{"id":"GHSA-g7p5-5759-qv46","title":"Data leak in Tensorflow","description":"### Impact\nThe `data_splits` argument of [`tf.raw_ops.StringNGrams`](https://www.tensorflow.org/api_docs/python/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\n```python\n\u003e\u003e\u003e tf.raw_ops.StringNGrams(data=[\"aa\", \"bb\", \"cc\", \"dd\", \"ee\", \"ff\"], data_splits=[0,8], separator=\" \", ngram_widths=[3], left_pad=\"\", right_pad=\"\", pad_width=0, preserve_short_sequences=False)\nStringNGrams(ngrams=\u003ctf.Tensor: shape=(6,), dtype=string, numpy=\narray([b'aa bb cc', b'bb cc dd', b'cc dd ee', b'dd ee ff',\n       b'ee ff \\xf4j\\xa7q\\x7f\\x00\\x00q\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xd8\\x9b~\\xa8q\\x7f\\x00',\n       b'ff \\xf4j\\xa7q\\x7f\\x00\\x00q\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xd8\\x9b~\\xa8q\\x7f\\x00 \\x9b~\\xa8q\\x7f\\x00\\x00p\\xf5j\\xa7q\\x7f\\x00\\x00H\\xf8j\\xa7q\\x7f\\x00\\x00\\xf0\\xf3\\xf7\\x85q\\x7f\\x00\\x00`}\\xa6\\x00\\x00\\x00\\x00\\x00`~\\xa6\\x00\\x00\\x00\\x00\\x00\\xb0~\\xeb\\x9bq\\x7f\\x00'],...\n```\n\nAll 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.\n\n### Patches\nWe have patched the issue in 0462de5b544ed4731aa2fb23946ac22c01856b80 and will release patch releases for all versions between 1.15 and 2.3.\n\nWe recommend users to upgrade to TensorFlow 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.\n\n### For more information\nPlease consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.\n\n### Attribution\nThis vulnerability has been reported by members of the Aivul Team from Qihoo 360.","status":"published","published":"2020-09-25T18:28:38Z","modified":"2024-10-30T21:11:47Z","cvss":[{"version":"4.0","score":6.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H","level":"medium"},{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-119","CWE-122","CWE-787"],"updated_at":"2026-11-02T14:38:14.769863Z"}],"nvd":[{"id":"CVE-2020-15205","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.","status":"published","published":"2020-09-25T19:15:15.823Z","modified":"2026-06-17T02:56:15.777Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-119","CWE-122","CWE-787"],"updated_at":"2026-11-02T14:06:17.70091Z"}],"osv":[{"id":"CVE-2020-15205","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.","status":"published","published":"2020-09-25T19:15:15.823Z","modified":"2026-10-20T14:10:32.279380794Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:14.828228Z"},{"id":"GHSA-g7p5-5759-qv46","title":"Data leak in Tensorflow","description":"### Impact\nThe `data_splits` argument of [`tf.raw_ops.StringNGrams`](https://www.tensorflow.org/api_docs/python/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\n```python\n\u003e\u003e\u003e tf.raw_ops.StringNGrams(data=[\"aa\", \"bb\", \"cc\", \"dd\", \"ee\", \"ff\"], data_splits=[0,8], separator=\" \", ngram_widths=[3], left_pad=\"\", right_pad=\"\", pad_width=0, preserve_short_sequences=False)\nStringNGrams(ngrams=\u003ctf.Tensor: shape=(6,), dtype=string, numpy=\narray([b'aa bb cc', b'bb cc dd', b'cc dd ee', b'dd ee ff',\n       b'ee ff \\xf4j\\xa7q\\x7f\\x00\\x00q\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xd8\\x9b~\\xa8q\\x7f\\x00',\n       b'ff \\xf4j\\xa7q\\x7f\\x00\\x00q\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xd8\\x9b~\\xa8q\\x7f\\x00 \\x9b~\\xa8q\\x7f\\x00\\x00p\\xf5j\\xa7q\\x7f\\x00\\x00H\\xf8j\\xa7q\\x7f\\x00\\x00\\xf0\\xf3\\xf7\\x85q\\x7f\\x00\\x00`}\\xa6\\x00\\x00\\x00\\x00\\x00`~\\xa6\\x00\\x00\\x00\\x00\\x00\\xb0~\\xeb\\x9bq\\x7f\\x00'],...\n```\n\nAll 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.\n\n### Patches\nWe have patched the issue in 0462de5b544ed4731aa2fb23946ac22c01856b80 and will release patch releases for all versions between 1.15 and 2.3.\n\nWe recommend users to upgrade to TensorFlow 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.\n\n### For more information\nPlease consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.\n\n### Attribution\nThis vulnerability has been reported by members of the Aivul Team from Qihoo 360.","status":"published","published":"2020-09-25T18:28:38Z","modified":"2026-07-08T06:00:32.157312876Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"},{"version":"4.0","score":6.5,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H","level":"medium"}],"cwes":["CWE-119","CWE-122","CWE-787"],"updated_at":"2026-11-02T15:46:47.472172Z"},{"id":"BIT-tensorflow-2020-15205","title":"Data leak in Tensorflow","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.","status":"published","published":"2024-03-06T11:20:33.621Z","modified":"2026-09-08T08:48:19.905566451Z","updated_at":"2026-11-02T15:28:35.51001Z"},{"id":"openSUSE-SU-2020:1766-1","title":"Security update for tensorflow2","description":"This update for tensorflow2 fixes the following issues:\n\n- updated to 2.1.2 with following fixes (boo#1177022):\n  * Fixes an undefined behavior causing a segfault in tf.raw_ops.Switch (CVE-2020-15190)\n  * Fixes three vulnerabilities in conversion to DLPack format (CVE-2020-15191, CVE-2020-15192, CVE-2020-15193)\n  * Fixes two vulnerabilities in SparseFillEmptyRowsGrad (CVE-2020-15194, CVE-2020-15195)\n  * Fixes an integer truncation vulnerability in code using the work sharder API (CVE-2020-15202)\n  * Fixes a format string vulnerability in tf.strings.as_string (CVE-2020-15203)\n  * Fixes segfault raised by calling session-only ops in eager mode (CVE-2020-15204)\n  * Fixes data leak and potential ASLR violation from tf.raw_ops.StringNGrams (CVE-2020-15205)\n  * Fixes segfaults caused by incomplete SavedModel validation (CVE-2020-15206)\n  * Fixes a data corruption due to a bug in negative indexing support in TFLite (CVE-2020-15207)\n  * Fixes a data corruption due to dimension mismatch in TFLite (CVE-2020-15208)\n  * Fixes several vulnerabilities in TFLite saved model format (CVE-2020-15209, CVE-2020-15210, CVE-2020-15211)\n","status":"published","published":"2020-10-29T11:23:39Z","modified":"2026-02-04T03:45:35.673536Z","updated_at":"2026-11-02T16:58:31.517538Z"},{"id":"openSUSE-SU-2024:12116-1","title":"tensorflow-lite-2.9.1-1.1 on GA media","description":"These are all security issues fixed in the tensorflow-lite-2.9.1-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:04:19.609756Z","updated_at":"2026-11-02T16:58:35.485255Z"},{"id":"PYSEC-2020-128","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.","status":"published","published":"2020-09-25T19:15:00Z","modified":"2023-12-06T01:00:16.942992Z","updated_at":"2026-11-02T15:52:52.192131Z"},{"id":"PYSEC-2020-285","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.","status":"published","published":"2020-09-25T19:15:00Z","modified":"2023-12-06T01:00:16.942992Z","updated_at":"2026-11-02T15:52:52.682031Z"},{"id":"PYSEC-2020-320","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.","status":"published","published":"2020-09-25T19:15:00Z","modified":"2023-12-06T01:00:16.942992Z","updated_at":"2026-11-02T15:52:52.682031Z"}]}}
