{"answers":{"affected":"16 open source packages ship an affected version, including tensorflow, tensorflow-cpu and tensorflow-gpu. It affects 2 products.","exploited":"There is no known exploitation of CVE-2020-15193 in the wild and no public exploit code.","fix":"Upgrade tensorflow to a fixed version for your release line: 2.2.1 or 2.3.1.","what":"CVE-2020-15193 is a high-severity memory corruption vulnerability in Google Tensorflow, published on 25 Sep 2020. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2020-15193 and fix it if it is affected.\n\nWhat it is: CVE-2020-15193 is a high-severity memory corruption vulnerability in Google Tensorflow, published on 25 Sep 2020. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2020-15193 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- tensorflow (Bitnami): affected from 2.2.0; fixed in 2.2.1, 2.3.1\n- tensorflow (PyPI): affected all versions; fixed in 2.2.1, 2.3.1\n- tensorflow (PyPI): affected from 2.2.0; fixed in 2.2.1\n- tensorflow (PyPI): affected from 2.2.0; fixed in 2.2.1\n- tensorflow (PyPI): affected from 2.3.0; fixed in 2.3.1\n- tensorflow (PyPI): affected from 2.3.0; fixed in 2.3.1\n- tensorflow-cpu (PyPI): affected all versions; fixed in 2.2.1, 2.3.1\n- tensorflow-cpu (PyPI): affected from 2.2.0; fixed in 2.2.1\n- tensorflow-cpu (PyPI): affected from 2.2.0; fixed in 2.2.1\n- tensorflow-cpu (PyPI): affected from 2.3.0; fixed in 2.3.1\n- tensorflow-cpu (PyPI): affected from 2.3.0; fixed in 2.3.1\n- tensorflow-gpu (PyPI): affected all versions; fixed in 2.2.1, 2.3.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2020-15193/ (Markdown: https://insights.sbomify.com/CVE-2020-15193/index.md)","id":"CVE-2020-15193","markdown":"https://insights.sbomify.com/CVE-2020-15193/index.md","name":"CVE-2020-15193","record":{"aliases":["BIT-tensorflow-2020-15193","GHSA-rjjg-hgv6-h69v","PYSEC-2020-116","PYSEC-2020-273","PYSEC-2020-308"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["code_execution","denial_of_service"],"network_reachable":"yes","non_default_config":false,"product_category":"TensorFlow machine learning library","requires_auth":"low_privilege","summary":"Attackers can trigger memory corruption in TensorFlow via dlpack.to_dlpack by passing invalid Python objects, potentially leading to code execution or crashes.","user_interaction":"not_required","vuln_class":"memory_corruption"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"tensorflow","vendor":"google"},{"product":"leap","vendor":"opensuse"}],"cvss":{"score":7.1,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L","version":"3.1"},"cwes":[{"id":"CWE-908","name":"Use of Uninitialized Resource"}],"description":"In Tensorflow before versions 2.2.1 and 2.3.1, the implementation of `dlpack.to_dlpack` can be made to use uninitialized memory resulting in further memory corruption. This is because the pybind11 glue code assumes that the argument is a tensor. However, there is nothing stopping users from passing in a Python object instead of a tensor. The uninitialized memory address is due to a `reinterpret_cast` Since the `PyObject` is a Python object, not a TensorFlow Tensor, the cast to `EagerTensor` fails. The issue is patched in commit 22e07fb204386768e5bcbea563641ea11f96ceb8 and is released in TensorFlow versions 2.2.1, or 2.3.1.","ecosystems":["Bitnami","PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Memory corruption in Tensorflow","id":"CVE-2020-15193","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Bitnami","product":"google:tensorflow","products":["google:tensorflow","opensuse:leap"],"type":"memory_corruption","year":"2020"},"n_packages":16,"n_references":4,"next":{"headline":"Denial of Service in Tensorflow","id":"CVE-2020-15194"},"packages":[{"ecosystem":"Bitnami","fixed":["2.2.1","2.3.1"],"introduced":["2.2.0","2.3.0"],"last_affected":[],"package":"tensorflow","purl":"pkg:bitnami/tensorflow","source":"BIT-tensorflow-2020-15193"},{"ecosystem":"PyPI","fixed":["2.2.1","2.3.1"],"introduced":["0","2.3.0rc0"],"last_affected":[],"package":"tensorflow","purl":"pkg:pypi/tensorflow","source":"PYSEC-2020-116"},{"ecosystem":"PyPI","fixed":["2.2.1"],"introduced":["2.2.0"],"last_affected":[],"package":"tensorflow","purl":null,"source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.2.1"],"introduced":["2.2.0"],"last_affected":[],"package":"tensorflow","purl":"pkg:pypi/tensorflow","source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.3.1"],"introduced":["2.3.0"],"last_affected":[],"package":"tensorflow","purl":null,"source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.3.1"],"introduced":["2.3.0"],"last_affected":[],"package":"tensorflow","purl":"pkg:pypi/tensorflow","source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.2.1","2.3.1"],"introduced":["0","2.3.0rc0"],"last_affected":[],"package":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","source":"PYSEC-2020-273"},{"ecosystem":"PyPI","fixed":["2.2.1"],"introduced":["2.2.0"],"last_affected":[],"package":"tensorflow-cpu","purl":null,"source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.2.1"],"introduced":["2.2.0"],"last_affected":[],"package":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.3.1"],"introduced":["2.3.0"],"last_affected":[],"package":"tensorflow-cpu","purl":null,"source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.3.1"],"introduced":["2.3.0"],"last_affected":[],"package":"tensorflow-cpu","purl":"pkg:pypi/tensorflow-cpu","source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.2.1","2.3.1"],"introduced":["0","2.3.0rc0"],"last_affected":[],"package":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","source":"PYSEC-2020-308"},{"ecosystem":"PyPI","fixed":["2.2.1"],"introduced":["2.2.0"],"last_affected":[],"package":"tensorflow-gpu","purl":null,"source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.2.1"],"introduced":["2.2.0"],"last_affected":[],"package":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.3.1"],"introduced":["2.3.0"],"last_affected":[],"package":"tensorflow-gpu","purl":null,"source":"GHSA-rjjg-hgv6-h69v"},{"ecosystem":"PyPI","fixed":["2.3.1"],"introduced":["2.3.0"],"last_affected":[],"package":"tensorflow-gpu","purl":"pkg:pypi/tensorflow-gpu","source":"GHSA-rjjg-hgv6-h69v"}],"prev":{"headline":"Memory leak in Tensorflow","id":"CVE-2020-15192"},"products":["tensorflow"],"published":"2020-09-25","related":[{"cvss_score":9.8,"headline":"TensorFlow vulnerable to heap out-of-buffer read in the QuantizeAndDequantize operation","id":"CVE-2023-25668","kev_date_added":null,"published":"2023-03-24"},{"cvss_score":9.8,"headline":"Integer Overflow or Wraparound in Google TensorFlow","id":"CVE-2018-7575","kev_date_added":null,"published":"2019-04-24"},{"cvss_score":9.3,"headline":"Arbitrary code execution due to YAML deserialization","id":"CVE-2021-37678","kev_date_added":null,"published":"2021-08-12"},{"cvss_score":9.1,"headline":"Path traversal in n/a","id":"CVE-2021-35958","kev_date_added":null,"published":"2021-06-30"},{"cvss_score":9,"headline":"Integer truncation in Shard API usage","id":"CVE-2020-15202","kev_date_added":null,"published":"2020-09-25"},{"cvss_score":9,"headline":"Data leak in Tensorflow","id":"CVE-2020-15205","kev_date_added":null,"published":"2020-09-25"},{"cvss_score":9,"headline":"Denial of Service in Tensorflow","id":"CVE-2020-15206","kev_date_added":null,"published":"2020-09-25"}],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"Bitnami","prefix":"BIT"},{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2024-08-04","vendors":["tensorflow"]},"summary":"Attackers can trigger memory corruption in TensorFlow via dlpack.to_dlpack by passing invalid Python objects, potentially leading to code execution or crashes.","url":"https://insights.sbomify.com/CVE-2020-15193/"}