Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2020-15195

In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the implementation of `SparseFillEmptyRowsGrad` uses a double indexing pattern. It is possible for `reverse_index_map(i)` to be an index outside of bounds of `grad_values`, thus resulting in a heap buffer overflow. The issue is patched in commit 390611e0d45c5793c7066110af37c8514e6a6c54, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2020-15195
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 12:38 UTC · Revision 1

Source evidence

CVE-2020-15195

core-osv · Original source

Published 25 Sept 2020, 19:15 UTC

In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the implementation of `SparseFillEmptyRowsGrad` uses a double indexing pattern. It is possible for `reverse_index_map(i)` to be an index outside of bounds of `grad_values`, thus resulting in a heap buffer overflow. The issue is patched in commit 390611e0d45c5793c7066110af37c8514e6a6c54, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.

osv:CVE-2020-15195
Complete source record
{
  "id": "b979fcab7045758053160f689cbef01020858beff7f78bc04ac7e2ef26994fc3",
  "url": "https://osv.dev/vulnerability/CVE-2020-15195",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2020-15195",
    "summary": "In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the implementation of `SparseFillEmptyRowsGrad` uses a double indexing pattern. It is possible for `reverse_index_map(i)` to be an index outside of bounds of `grad_values`, thus resulting in a heap buffer overflow. The issue is patched in commit 390611e0d45c5793c7066110af37c8514e6a6c54, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.",
    "evidence": "osv:CVE-2020-15195",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2020-15195",
      "aliases": [
        "BIT-tensorflow-2020-15195",
        "CVE-2020-15195",
        "GHSA-63xm-rx5p-xvqr",
        "PYSEC-2020-118",
        "PYSEC-2020-275",
        "PYSEC-2020-310"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/tensorflow/tensorflow",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "df8c55ce12b5cfc6f29b01889f7773911a75e6ef"
                },
                {
                  "introduced": "64c3d382cadf7bbe8e7e99884bede8284ff67f56"
                },
                {
                  "fixed": "295ad2781683835be974faba0a191528d8079768"
                },
                {
                  "introduced": "e5bf8de410005de06a7ff5393fafdf832ef1d4ad"
                },
                {
                  "fixed": "ab35f2bf7132f9d20a0bea9a5d1849862737d4b4"
                },
                {
                  "introduced": "2b96f3662bd776e277f86997659e61046b56c315"
                },
                {
                  "fixed": "25fba035f3e453d94490932096282c7b0624bbb3"
                },
                {
                  "introduced": "b36436b087bd8e8701ef51718179037cccdfc26e"
                },
                {
                  "fixed": "fcc4b966f1265f466e82617020af93670141b009"
                },
                {
                  "fixed": "390611e0d45c5793c7066110af37c8514e6a6c54"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.15.4"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*",
                    "range": [
                      {
                        "introduced": "2.0.0"
                      },
                      {
                        "fixed": "2.0.3"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*",
                    "range": [
                      {
                        "introduced": "2.1.0"
                      },
                      {
                        "fixed": "2.1.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*",
                    "range": [
                      {
                        "introduced": "2.2.0"
                      },
                      {
                        "fixed": "2.2.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:-:*:*:*",
                    "range": [
                      {
                        "introduced": "2.3.0"
                      },
                      {
                        "fixed": "2.3.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "390611e0d45c5793c7066110af37c8514e6a6c54"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "fcc4b966f1265f466e82617020af93670141b009"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.3.1"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.2.0",
            "v2.1.1",
            "v2.3.0",
            "v2.0.2",
            "v1.15.3",
            "v2.0.1",
            "v2.1.0",
            "v1.15.2",
            "v1.15.0",
            "v1.15.0-rc3",
            "v2.0.0",
            "v1.15.0-rc2",
            "v1.15.0-rc1",
            "v1.15.0-rc0",
            "v1.12.1",
            "v1.9.0-rc2",
            "v1.6.0-rc1",
            "v1.1.0-rc2",
            "v1.1.0-rc1",
            "0.6.0",
            "0.5.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2020-15195.json",
            "vanir_signatures": [
              {
                "id": "CVE-2020-15195-36cad8cf",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "259848440958415696715521615731029030452",
                    "218541846242894194789173260655204712511",
                    "71097890848980966314294188268620153762",
                    "138667248717434564490272608563126366461",
                    "208001727616036684745631798481607273358",
                    "134824706081532736489721039651720296162",
                    "87814817203424266253895897990251901181",
                    "291342232809186222451047035231406968374",
                    "91120970708461343970534351591815534898"
                  ]
                },
                "source": "https://github.com/tensorflow/tensorflow/commit/390611e0d45c5793c7066110af37c8514e6a6c54",
                "target": {
                  "file": "tensorflow/core/kernels/sparse_fill_empty_rows_op.cc"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-20T14:10:24Z"
          }
        }
      ],
      "modified": "2026-10-20T14:10:24.761383118Z",
      "provider": "osv",
      "references": [
        "https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1",
        "https://github.com/tensorflow/tensorflow/commit/390611e0d45c5793c7066110af37c8514e6a6c54",
        "https://github.com/tensorflow/tensorflow/security/advisories/GHSA-63xm-rx5p-xvqr"
      ],
      "provider_metadata": {
        "unresolved_ranges": [
          {
            "cpes": [
              "cpe:2.3:o:opensuse:leap:15.2:*:*:*:*:*:*:*"
            ],
            "vendor_product": "opensuse:leap",
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "15.2"
                  },
                  {
                    "last_affected": "15.2"
                  }
                ],
                "source": "CPE_STRING"
              }
            ]
          }
        ]
      }
    },
    "related_cves": [
      {
        "value": "CVE-2020-15195",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 388603,
  "published_at": "2020-09-25T19:15:14.743+00:00"
}