TensorFlow is an end-to-end open source platform for machine learning. TFLite's convolution code(https://github.com/tensorflow/tensorflow/blob/09c73bca7d648e961dd05898292d91a8322a9d45/tensorflow/lite/kernels/conv.cc) has multiple division where the divisor is controlled by the user and not checked to be non-zero. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.
{
"extracted_events": [
{
"cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "2.1.4"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.2.0"
},
{
"fixed": "2.2.3"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.0"
},
{
"fixed": "2.3.3"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.4.0"
},
{
"fixed": "2.4.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "ff489d95a9006be080ad14feb378f2b4dac35552"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-29594.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "241828563079273816875555412677286270911",
"length": 8198
},
"id": "CVE-2021-29594-010f20d4",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tensorflow/tensorflow/commit/ff489d95a9006be080ad14feb378f2b4dac35552",
"target": {
"file": "tensorflow/lite/kernels/conv.cc",
"function": "Prepare"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "103474681184460518855821084448936331956",
"length": 2953
},
"id": "CVE-2021-29594-19259f88",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tensorflow/tensorflow/commit/ff489d95a9006be080ad14feb378f2b4dac35552",
"target": {
"file": "tensorflow/lite/kernels/conv.cc",
"function": "EvalHybridPerChannel"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "319472393808026680190376299199664178171",
"length": 2083
},
"id": "CVE-2021-29594-52b61ede",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/tensorflow/tensorflow/commit/ff489d95a9006be080ad14feb378f2b4dac35552",
"target": {
"file": "tensorflow/lite/kernels/conv.cc",
"function": "EvalHybrid"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"23966049195804332770736221662362345116",
"307233392842136673797456597010735622282",
"331827593271321634413950807972495658783",
"95589365979269811117873307004957497712",
"172150235519073812075536980403916118133",
"6296936829859613806249048417845789318",
"305055278261790720729836021429841729232",
"245400044068168284329209705824681760951",
"149288434908016714519199993294694738491",
"235332859506307316161350506100359687168",
"79023967153362935111583084435580452177",
"305055278261790720729836021429841729232",
"245400044068168284329209705824681760951",
"337715588182502199209593423116884553062",
"141164427685407524135431191716300174616",
"30096414884909854647657708435756791771"
],
"threshold": 0.9
},
"id": "CVE-2021-29594-f3518d47",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/tensorflow/tensorflow/commit/ff489d95a9006be080ad14feb378f2b4dac35552",
"target": {
"file": "tensorflow/lite/kernels/conv.cc"
}
}
]
"2026-10-20T14:24:38Z"