{"id":"CVE-2020-15207","details":"In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, to mimic Python's indexing with negative values, TFLite uses `ResolveAxis` to convert negative values to positive indices. However, the only check that the converted index is now valid is only present in debug builds. If the `DCHECK` does not trigger, then code execution moves ahead with a negative index. This, in turn, results in accessing data out of bounds which results in segfaults and/or data corruption. The issue is patched in commit 2d88f470dea2671b430884260f3626b1fe99830a, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.","aliases":["BIT-tensorflow-2020-15207","GHSA-q4qf-3fc6-8x34","PYSEC-2020-130","PYSEC-2020-287","PYSEC-2020-322"],"modified":"2026-08-07T16:49:40.304571Z","published":"2020-09-25T19:15:15.993Z","related":["openSUSE-SU-2020:1766-1","openSUSE-SU-2024:12116-1"],"database_specific":{"unresolved_ranges":[{"source":"CPE_STRING","vendor_product":"opensuse:leap","cpes":["cpe:2.3:o:opensuse:leap:15.2:*:*:*:*:*:*:*"],"extracted_events":[{"introduced":"15.2"},{"last_affected":"15.2"}]}]},"references":[{"type":"ADVISORY","url":"http://lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html"},{"type":"ADVISORY","url":"https://github.com/tensorflow/tensorflow/releases/tag/v2.3.1"},{"type":"FIX","url":"https://github.com/tensorflow/tensorflow/commit/2d88f470dea2671b430884260f3626b1fe99830a"},{"type":"EVIDENCE","url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-q4qf-3fc6-8x34"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/tensorflow/tensorflow","events":[{"introduced":"0"},{"fixed":"df8c55ce12b5cfc6f29b01889f7773911a75e6ef"},{"introduced":"64c3d382cadf7bbe8e7e99884bede8284ff67f56"},{"fixed":"295ad2781683835be974faba0a191528d8079768"},{"introduced":"e5bf8de410005de06a7ff5393fafdf832ef1d4ad"},{"fixed":"ab35f2bf7132f9d20a0bea9a5d1849862737d4b4"},{"introduced":"2b96f3662bd776e277f86997659e61046b56c315"},{"fixed":"25fba035f3e453d94490932096282c7b0624bbb3"},{"introduced":"b36436b087bd8e8701ef51718179037cccdfc26e"},{"fixed":"fcc4b966f1265f466e82617020af93670141b009"},{"fixed":"2d88f470dea2671b430884260f3626b1fe99830a"}],"database_specific":{"cpe":"cpe:2.3:a:google:tensorflow:*:*:*:*:lite:*:*:*","extracted_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":["CPE_RANGE","REFERENCES"]}}],"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-15207.json","vanir_signatures_modified":"2026-08-07T16:49:40Z","vanir_signatures":[{"signature_type":"Line","signature_version":"v1","source":"https://github.com/tensorflow/tensorflow/commit/2d88f470dea2671b430884260f3626b1fe99830a","target":{"file":"tensorflow/lite/kernels/internal/reference/reduce.h"},"deprecated":false,"digest":{"line_hashes":["77400558600300484339504560001090688161","33976402485292289763336288128448202154","291082537597196898762740008073072151215","203358920214184468189409333592589225902"],"threshold":0.9},"id":"CVE-2020-15207-4f9cd49a"},{"id":"CVE-2020-15207-ee3e9c67","signature_type":"Function","signature_version":"v1","source":"https://github.com/tensorflow/tensorflow/commit/2d88f470dea2671b430884260f3626b1fe99830a","target":{"file":"tensorflow/lite/kernels/internal/reference/reduce.h","function":"ResolveAxis"},"deprecated":false,"digest":{"function_hash":"307496285844794787636736706317161422188","length":531}}]}}],"schema_version":"1.8.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H"}]}