{"id":"CVE-2020-15266","aliases":["BIT-tensorflow-2020-15266","EUVD-2020-0212","GHSA-xwhf-g6j5-j5gc","PYSEC-2020-139","PYSEC-2020-296","PYSEC-2020-331"],"status":"published","title":"Undefined behavior in Tensorflow","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","severity":{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.0094,"percentile":0.61231,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-119"],"published":"2020-10-21T20:30:16Z","modified":"2026-10-20T10:54:17Z","fixes":[{"ecosystem":"PyPI","package":"tensorflow","fixed_in":["2.4.0"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"tensorflow-cpu","fixed_in":["2.4.0"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"tensorflow-gpu","fixed_in":["2.4.0"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"tensorflow","fixed_in":["2.4.0"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"tensorflow","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}],"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","2.3.4"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}],"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","2.3.4"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}],"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","2.3.4"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}],"versions":["0.12.0rc0","0.12.0rc1","0.12.0","0.12.1","1.0.0","1.0.1","1.1.0rc0","1.1.0rc1","1.1.0rc2","1.1.0","1.2.0rc0","1.2.0rc1","1.2.0rc2","1.2.0","1.2.1","1.3.0rc0","1.3.0rc1","1.3.0rc2","1.3.0","1.4.0rc0","1.4.0rc1","1.4.0","1.4.1","1.5.0rc0","1.5.0rc1","1.5.0","1.5.1","1.6.0rc0","1.6.0rc1","1.6.0","1.7.0rc0","1.7.0rc1","1.7.0","1.7.1","1.8.0rc0","1.8.0rc1","1.8.0","1.9.0rc0","1.9.0rc1","1.9.0rc2","1.9.0","1.10.0rc0","1.10.0rc1","1.10.0","1.10.1","1.11.0rc0","1.11.0rc1","1.11.0rc2","1.11.0","1.12.0rc0","1.12.0rc1","1.12.0rc2","1.12.0","1.12.2","1.12.3","1.13.0rc0","1.13.0rc1","1.13.0rc2","1.13.1","1.13.2","1.14.0rc0","1.14.0rc1","1.14.0","1.15.0rc0","1.15.0rc1","1.15.0rc2","1.15.0rc3","1.15.0","1.15.2","1.15.3","1.15.4","1.15.5","2.0.0a0","2.0.0b0","2.0.0b1","2.0.0rc0","2.0.0rc1","2.0.0rc2","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.1.0rc0","2.1.0rc1","2.1.0rc2","2.1.0","2.1.1","2.1.2","2.1.3","2.2.0rc0","2.2.0rc1","2.2.0rc2","2.2.0rc3","2.2.0rc4","2.2.0","2.2.1","2.2.2","2.3.0rc0","2.3.0rc1","2.3.0rc2","2.3.0","2.3.1","2.3.2","2.4.0rc0","2.4.0rc1","2.4.0rc2","2.4.0rc3","2.4.0rc4","2.1.4","2.2.3","2.3.3","2.3.4"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-cpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}],"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","2.3.4"]},{"source":"osv","ecosystem":"PyPI","package":"tensorflow-gpu","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0"}]}],"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","2.3.4"]}],"products":[{"vendor":"google","product":"tensorflow"},{"vendor":"tensorflow","product":"tensorflow"}],"references":[{"url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-xwhf-g6j5-j5gc","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","advisory","fix","web"]},{"url":"https://github.com/tensorflow/tensorflow/issues/42129","tags":["x_refsource_CONFIRM","x_transferred","Exploit","Patch","Third Party Advisory","advisory","fix","web","report"]},{"url":"https://github.com/tensorflow/tensorflow/pull/42143/commits/3ade2efec2e90c6237de32a19680caaa3ebc2845","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-15266","tags":["web","advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-296.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2020-331.yaml","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2020-139.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-xwhf-g6j5-j5gc"},{"url":"https://github.com/tensorflow/tensorflow","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-15266","title":"Undefined behavior in Tensorflow","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T20:30:16Z","modified":"2024-08-04T13:15:18.938Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low","assessor":"cna"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T14:35:50.228781Z"}],"euvd":[{"id":"EUVD-2020-0212","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T20:30:16Z","modified":"2024-08-04T13:15:18Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"updated_at":"2026-11-03T03:07:32.55679Z"}],"ghsa":[{"id":"GHSA-xwhf-g6j5-j5gc","title":"Float cast overflow undefined behavior","description":"### Impact\nWhen the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault.\n\n### Patches\n\nWe have patched the issue in c0319231333f0f16e1cc75ec83660b01fedd4182 and will release TensorFlow 2.4.0 containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.\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 in #42129","status":"published","published":"2020-11-13T17:18:29Z","modified":"2024-10-28T14:46:33Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"},{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T14:38:13.90937Z"}],"nvd":[{"id":"CVE-2020-15266","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T21:15:12.35Z","modified":"2026-06-17T02:56:23.627Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T14:06:20.704992Z"}],"osv":[{"id":"CVE-2020-15266","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T21:15:12.35Z","modified":"2026-10-20T10:54:17.907618738Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:14.828228Z"},{"id":"GHSA-xwhf-g6j5-j5gc","title":"Float cast overflow undefined behavior","description":"### Impact\nWhen the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault.\n\n### Patches\n\nWe have patched the issue in c0319231333f0f16e1cc75ec83660b01fedd4182 and will release TensorFlow 2.4.0 containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.\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 in #42129","status":"published","published":"2020-11-13T17:18:29Z","modified":"2026-07-08T06:00:37.840609805Z","cvss":[{"version":"3.1","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"low"},{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T15:47:00.604718Z"},{"id":"BIT-tensorflow-2020-15266","title":"Undefined behavior in Tensorflow","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2024-03-06T11:20:19.925Z","modified":"2026-09-08T08:48:19.888277842Z","updated_at":"2026-11-02T15:28:35.51001Z"},{"id":"PYSEC-2020-139","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T21:15:00Z","modified":"2023-12-06T01:00:17.667384Z","updated_at":"2026-11-02T15:52:52.192131Z"},{"id":"PYSEC-2020-296","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T21:15:00Z","modified":"2023-12-06T01:00:17.667384Z","updated_at":"2026-11-02T15:52:52.682031Z"},{"id":"PYSEC-2020-331","description":"In Tensorflow before version 2.4.0, when the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault. The issue is patched in eccb7ec454e6617738554a255d77f08e60ee0808 and TensorFlow 2.4.0 will be released containing the patch. TensorFlow nightly packages after this commit will also have the issue resolved.","status":"published","published":"2020-10-21T21:15:00Z","modified":"2023-12-06T01:00:17.667384Z","updated_at":"2026-11-02T15:52:52.682031Z"}]}}
