{"id":"CVE-2021-37669","aliases":["BIT-tensorflow-2021-37669","EUVD-2021-0395","GHSA-vmjw-c2vp-p33c","PYSEC-2021-291","PYSEC-2021-582","PYSEC-2021-780","openSUSE-SU-2022:10014-1","openSUSE-SU-2024:12116-1"],"status":"published","title":"Crash in NMS ops caused by integer conversion to unsigned in TensorFlow","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","severity":{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00175,"percentile":0.0705,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-681"],"published":"2021-08-12T22:55:17Z","modified":"2026-10-20T14:28:24Z","fixes":[{"ecosystem":"PyPI","package":"tensorflow","fixed_in":["2.3.4","2.4.3","2.5.1"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"tensorflow-cpu","fixed_in":["2.3.4","2.4.3","2.5.1"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"tensorflow-gpu","fixed_in":["2.3.4","2.4.3","2.5.1"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"tensorflow","fixed_in":["2.3.4","2.4.3","2.5.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.4"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"last_affected":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.4"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"last_affected":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.4"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"last_affected":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"osv","ecosystem":"Bitnami","package":"tensorflow","ranges":[{"type":"SEMVER","events":[{"introduced":"2.3.0"},{"fixed":"2.3.4"},{"introduced":"2.4.0"},{"fixed":"2.4.3"},{"introduced":"2.5.0"},{"fixed":"2.5.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.4"}]}],"versions":["0.12.0","0.12.1","1.0.0","1.0.1","1.1.0","1.10.0","1.10.1","1.11.0","1.12.0","1.12.2","1.12.3","1.13.1","1.13.2","1.14.0","1.15.0","1.15.2","1.15.3","1.15.4","1.15.5","1.2.0","1.2.1","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.8.0","1.9.0","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.2.0","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.2","2.3.3"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}],"versions":["2.4.0","2.4.1","2.4.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.4"}]}],"versions":["1.15.0","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.2.0","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.2","2.3.3"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}],"versions":["2.4.0","2.4.1","2.4.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.4"}]}],"versions":["0.12.0","0.12.1","1.0.0","1.0.1","1.1.0","1.10.0","1.10.1","1.11.0","1.12.0","1.12.2","1.12.3","1.13.1","1.13.2","1.14.0","1.15.0","1.15.2","1.15.3","1.15.4","1.15.5","1.2.0","1.2.1","1.3.0","1.4.0","1.4.1","1.5.0","1.5.1","1.6.0","1.7.0","1.7.1","1.8.0","1.9.0","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.2.0","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.2","2.3.3"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}],"versions":["2.4.0","2.4.1","2.4.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"fixed":"2.5.1"}]}],"versions":["2.5.0"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d"},{"fixed":"b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58"}]},{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.4"},{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}],"versions":["2.3.0","2.3.1","2.3.2","2.3.3","2.4.0","2.4.1","2.4.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d"},{"fixed":"b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58"}]},{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.4"},{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}],"versions":["2.3.0","2.3.1","2.3.2","2.3.3","2.4.0","2.4.1","2.4.2"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d"},{"fixed":"b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58"}]},{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0"},{"fixed":"2.3.4"},{"introduced":"2.4.0"},{"fixed":"2.4.3"}]}],"versions":["2.3.0","2.3.1","2.3.2","2.3.3","2.4.0","2.4.1","2.4.2"]},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"bazel-skylib1.0.3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.3-bp153.2.1"}]}],"bundled":63},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"bazel3.7","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.7.2-bp153.4.1"}]}],"bundled":63},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"tensorflow2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"tensorflow2-lite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"tensorflow2_2_6_0-gnu-hpc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP3","package":"tensorflow2_2_6_0-gnu-openmpi2-hpc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"bazel-skylib1.0.3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.3-bp153.2.1"}]}],"bundled":63},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"bazel3.7","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.7.2-bp153.4.1"}]}],"bundled":63},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"tensorflow2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"tensorflow2-lite","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"tensorflow2_2_6_0-gnu-hpc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"tensorflow2_2_6_0-gnu-openmpi2-hpc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.6.0-bp153.2.3.1"}]}],"bundled":63}],"products":[{"vendor":"google","product":"tensorflow"},{"vendor":"tensorflow","product":"tensorflow"}],"references":[{"url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-vmjw-c2vp-p33c","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/tensorflow/tensorflow/commit/3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","advisory","fix","web"]},{"url":"https://github.com/tensorflow/tensorflow/commit/b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-37669","tags":["web","advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-582.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-780.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-291.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-vmjw-c2vp-p33c"},{"url":"https://github.com/tensorflow/tensorflow","tags":["web"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/U25ZU2T5T4LOLSIYIMGC5PLU4PQQMJE5/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1173128","tags":["report"]},{"url":"https://bugzilla.suse.com/1173314","tags":["report"]},{"url":"https://bugzilla.suse.com/1178287","tags":["report"]},{"url":"https://bugzilla.suse.com/1178564","tags":["report"]},{"url":"https://bugzilla.suse.com/1179455","tags":["report"]},{"url":"https://bugzilla.suse.com/1181864","tags":["report"]},{"url":"https://bugzilla.suse.com/1186860","tags":["report"]},{"url":"https://bugzilla.suse.com/1189423","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26266","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26267","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26268","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26270","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26271","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37635","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37636","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37637","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37638","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37639","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37640","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37641","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37642","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37643","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37644","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37645","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37646","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37647","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37648","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37649","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37650","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37651","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37652","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37653","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37654","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37655","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37656","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37657","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37658","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37659","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37660","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37661","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37662","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37663","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37664","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37665","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37666","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37667","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37668","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37669","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37670","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37671","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37672","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37673","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37674","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37675","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37676","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37677","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37678","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37679","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37680","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37681","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37682","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37683","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37684","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37685","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37686","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37687","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37688","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37689","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37690","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37691","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-37692","tags":["web"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2020-10531","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15190","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15191","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15194","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15202","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15203","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15204","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15205","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15206","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15207","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15208","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-15209","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-22922","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-22923","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-22926","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41195","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41196","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41197","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41198","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41199","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41200","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41201","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41202","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41203","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41204","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41205","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41206","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41207","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41208","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41209","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41210","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41211","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41212","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41213","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41214","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41215","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41216","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41217","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41218","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41219","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41220","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41221","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41222","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41223","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41224","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41225","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41226","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41227","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41228","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21725","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21726","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21727","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21728","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21729","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21730","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21731","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21732","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21733","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21734","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21735","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21736","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21737","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21738","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21739","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21740","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-21741","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23557","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23558","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23559","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23560","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23561","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23562","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23563","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23564","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23565","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23566","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23567","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23568","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23569","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23570","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23571","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23572","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23573","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23574","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23575","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23576","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23577","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23578","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23579","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23580","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23581","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23582","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23583","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23584","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23585","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23586","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23587","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23588","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23589","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23590","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23591","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23594","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-23595","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2021-37669","title":"Crash in NMS ops caused by integer conversion to unsigned in TensorFlow","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T22:55:17Z","modified":"2024-08-04T01:23:01.462Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"cna"}],"cwes":["CWE-681"],"updated_at":"2026-11-02T14:32:58.359368Z"}],"euvd":[{"id":"EUVD-2021-0395","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T22:55:17Z","modified":"2024-08-04T01:23:01Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-03T03:24:27.254804Z"}],"ghsa":[{"id":"GHSA-vmjw-c2vp-p33c","title":"Crash in NMS ops caused by integer conversion to unsigned","description":"### Impact\nAn attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0:\n\n```python\nimport tensorflow as tf\n\ntf.raw_ops.NonMaxSuppressionV5(\n  boxes=[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]],\n  scores=[1.0,2.0,3.0],\n  max_output_size=-1,\n  iou_threshold=0.5,\n  score_threshold=0.5,\n  soft_nms_sigma=1.0,\n  pad_to_max_output_size=True)\n```\n  \nThe [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`:\n\n```cc\n  const int output_size = max_output_size.scalar\u003cint\u003e()();\n  // ...\n  std::vector\u003cint\u003e selected;\n  // ...\n  if (pad_to_max_output_size) {\n    selected.resize(output_size, 0);\n    // ...\n  }\n```\n    \nHowever, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to usigned. If the attacker supplies a negative value, this conversion results in a crash.\n\nA similar issue occurs in `CombinedNonMaxSuppression`:\n\n```python\nimport tensorflow as tf\n\ntf.raw_ops.NonMaxSuppressionV5(\n  boxes=[[[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]],[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]],[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]]]],\n  scores=[[[1.0,2.0,3.0],[1.0,2.0,3.0],[1.0,2.0,3.0]]],\n  max_output_size_per_class=-1,\n  max_total_size=10,\n  iou_threshold=score_threshold=0.5,\n  pad_per_class=True,\n  clip_boxes=True)\n```\n  \n### Patches\nWe have patched the issue in GitHub commit [3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d](https://github.com/tensorflow/tensorflow/commit/3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d) and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58](https://github.com/tensorflow/tensorflow/commit/b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58).\n\nThe fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.\n\n### For more information \nPlease consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.\n\n### Attribution\nThis vulnerability has been reported by members of the Aivul Team from Qihoo 360.","status":"published","published":"2021-08-25T14:42:03Z","modified":"2024-11-13T21:00:18Z","cvss":[{"version":"4.0","score":6.8,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"medium"},{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-681"],"updated_at":"2026-11-02T14:38:17.357217Z"}],"nvd":[{"id":"CVE-2021-37669","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T23:15:07.597Z","modified":"2026-06-17T04:00:56.82Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":2.1,"vector":"AV:L/AC:L/Au:N/C:N/I:N/A:P","level":"low","assessor":"primary"}],"cwes":["CWE-681"],"updated_at":"2026-11-02T14:06:56.943671Z"}],"osv":[{"id":"CVE-2021-37669","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T23:15:07.597Z","modified":"2026-10-20T14:28:24.292623004Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:20.434873Z"},{"id":"GHSA-vmjw-c2vp-p33c","title":"Crash in NMS ops caused by integer conversion to unsigned","description":"### Impact\nAn attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0:\n\n```python\nimport tensorflow as tf\n\ntf.raw_ops.NonMaxSuppressionV5(\n  boxes=[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]],\n  scores=[1.0,2.0,3.0],\n  max_output_size=-1,\n  iou_threshold=0.5,\n  score_threshold=0.5,\n  soft_nms_sigma=1.0,\n  pad_to_max_output_size=True)\n```\n  \nThe [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`:\n\n```cc\n  const int output_size = max_output_size.scalar\u003cint\u003e()();\n  // ...\n  std::vector\u003cint\u003e selected;\n  // ...\n  if (pad_to_max_output_size) {\n    selected.resize(output_size, 0);\n    // ...\n  }\n```\n    \nHowever, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to usigned. If the attacker supplies a negative value, this conversion results in a crash.\n\nA similar issue occurs in `CombinedNonMaxSuppression`:\n\n```python\nimport tensorflow as tf\n\ntf.raw_ops.NonMaxSuppressionV5(\n  boxes=[[[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]],[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]],[[0.1,0.1,0.1,0.1],[0.2,0.2,0.2,0.2],[0.3,0.3,0.3,0.3]]]],\n  scores=[[[1.0,2.0,3.0],[1.0,2.0,3.0],[1.0,2.0,3.0]]],\n  max_output_size_per_class=-1,\n  max_total_size=10,\n  iou_threshold=score_threshold=0.5,\n  pad_per_class=True,\n  clip_boxes=True)\n```\n  \n### Patches\nWe have patched the issue in GitHub commit [3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d](https://github.com/tensorflow/tensorflow/commit/3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d) and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58](https://github.com/tensorflow/tensorflow/commit/b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58).\n\nThe fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.\n\n### For more information \nPlease consult [our security guide](https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md) for more information regarding the security model and how to contact us with issues and questions.\n\n### Attribution\nThis vulnerability has been reported by members of the Aivul Team from Qihoo 360.","status":"published","published":"2021-08-25T14:42:03Z","modified":"2026-07-08T06:28:29.22599Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"},{"version":"4.0","score":6.8,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-681"],"updated_at":"2026-11-02T15:46:57.348035Z"},{"id":"BIT-tensorflow-2021-37669","title":"Crash in NMS ops caused by integer conversion to unsigned in TensorFlow","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2024-03-06T11:17:10.014Z","modified":"2026-09-08T08:48:16.764472344Z","updated_at":"2026-11-02T15:28:35.51001Z"},{"id":"openSUSE-SU-2022:10014-1","title":"Security update for tensorflow2","description":"\nThis update for tensorflow fixes the following issues:\n\n\nUpdate to TF2 2.6.0 which fixes multiple CVEs (boo#1189423).\n\n- Introduction of bazel6.3 and basel-skylib1.0.3 as build\n  dependencies.\n  The latter has been adapted to all a version in its package\n  name (if %set_ver_suffix is set to 1). This allows multiple\n  versions to exist for one product (not installed).\n  NOTE: basel-skylib1.0.3 does not exist in oS:Factory:\n  basel-skylib in oS:Factory - the base version - is 1.0.3.\n","status":"published","published":"2022-06-18T16:01:26Z","modified":"2026-02-04T02:20:34.480131Z","updated_at":"2026-11-02T16:58:32.653274Z"},{"id":"openSUSE-SU-2024:12116-1","title":"tensorflow-lite-2.9.1-1.1 on GA media","description":"These are all security issues fixed in the tensorflow-lite-2.9.1-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:04:19.609756Z","updated_at":"2026-11-02T16:58:35.485255Z"},{"id":"PYSEC-2021-291","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T23:15:00Z","modified":"2023-12-06T01:01:23.301167Z","updated_at":"2026-11-02T15:52:52.682031Z"},{"id":"PYSEC-2021-582","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T23:15:00Z","modified":"2023-12-06T01:01:23.301167Z","updated_at":"2026-11-02T15:52:53.119977Z"},{"id":"PYSEC-2021-780","description":"TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause denial of service in applications serving models using `tf.raw_ops.NonMaxSuppressionV5` by triggering a division by 0. The [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/kernels/image/non_max_suppression_op.cc#L170-L271) uses a user controlled argument to resize a `std::vector`. However, as `std::vector::resize` takes the size argument as a `size_t` and `output_size` is an `int`, there is an implicit conversion to unsigned. If the attacker supplies a negative value, this conversion results in a crash. A similar issue occurs in `CombinedNonMaxSuppression`. We have patched the issue in GitHub commit 3a7362750d5c372420aa8f0caf7bf5b5c3d0f52d and commit [b5cdbf12ffcaaffecf98f22a6be5a64bb96e4f58. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.","status":"published","published":"2021-08-12T23:15:00Z","modified":"2023-12-06T01:01:23.301167Z","updated_at":"2026-11-02T15:52:53.119977Z"}]}}
