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.
[
{
"deprecated": false,
"source": "https://github.com/tensorflow/tensorflow/commit/390611e0d45c5793c7066110af37c8514e6a6c54",
"digest": {
"line_hashes": [
"259848440958415696715521615731029030452",
"218541846242894194789173260655204712511",
"71097890848980966314294188268620153762",
"138667248717434564490272608563126366461",
"208001727616036684745631798481607273358",
"134824706081532736489721039651720296162",
"87814817203424266253895897990251901181",
"291342232809186222451047035231406968374",
"91120970708461343970534351591815534898"
],
"threshold": 0.9
},
"target": {
"file": "tensorflow/core/kernels/sparse_fill_empty_rows_op.cc"
},
"id": "CVE-2020-15195-36cad8cf",
"signature_version": "v1",
"signature_type": "Line"
}
]