{"api_version":"1","generated_at":"2026-07-23T11:42:42+00:00","cve":"CVE-2021-41196","urls":{"html":"https://cve.report/CVE-2021-41196","api":"https://cve.report/api/cve/CVE-2021-41196.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2021-41196","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2021-41196"},"summary":{"title":"CVE-2021-41196","description":"TensorFlow is an open source platform for machine learning. In affected versions the Keras pooling layers can trigger a segfault if the size of the pool is 0 or if a dimension is negative. This is due to the TensorFlow's implementation of pooling operations where the values in the sliding window are not checked to be strictly positive. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2021-11-05 20:15:00","updated_at":"2021-11-09 13:56:00"},"problem_types":["CWE-191"],"metrics":[],"references":[{"url":"https://github.com/tensorflow/tensorflow/issues/51936","name":"https://github.com/tensorflow/tensorflow/issues/51936","refsource":"MISC","tags":[],"title":"tf.keras.layers.MaxPooling3D crashes · Issue #51936 · tensorflow/tensorflow · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/tensorflow/tensorflow/commit/12b1ff82b3f26ff8de17e58703231d5a02ef1b8b","name":"https://github.com/tensorflow/tensorflow/commit/12b1ff82b3f26ff8de17e58703231d5a02ef1b8b","refsource":"MISC","tags":[],"title":"Merge pull request #51975 from yongtang:51936-max_pool3d · tensorflow/tensorflow@12b1ff8 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-m539-j985-hcr8","name":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-m539-j985-hcr8","refsource":"CONFIRM","tags":[],"title":"Crash in `max_pool3d` when size argument is 0 or negative · Advisory · tensorflow/tensorflow · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-41196","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-41196","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2021","cve_id":"41196","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"google","cpe5":"tensorflow","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2021-41196","qid":"980162","title":"Python (pip) Security Update for tensorflow-gpu (GHSA-m539-j985-hcr8)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2021-41196","STATE":"PUBLIC","TITLE":"Crash in `max_pool3d` when size argument is 0 or negative"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"tensorflow","version":{"version_data":[{"version_value":">= 2.6.0, < 2.6.1"},{"version_value":">= 2.5.0, < 2.5.2"},{"version_value":"< 2.4.4"}]}}]},"vendor_name":"tensorflow"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"TensorFlow is an open source platform for machine learning. In affected versions the Keras pooling layers can trigger a segfault if the size of the pool is 0 or if a dimension is negative. This is due to the TensorFlow's implementation of pooling operations where the values in the sliding window are not checked to be strictly positive. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range."}]},"impact":{"cvss":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":5.5,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-191: Integer Underflow (Wrap or Wraparound)"}]}]},"references":{"reference_data":[{"name":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-m539-j985-hcr8","refsource":"CONFIRM","url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-m539-j985-hcr8"},{"name":"https://github.com/tensorflow/tensorflow/issues/51936","refsource":"MISC","url":"https://github.com/tensorflow/tensorflow/issues/51936"},{"name":"https://github.com/tensorflow/tensorflow/commit/12b1ff82b3f26ff8de17e58703231d5a02ef1b8b","refsource":"MISC","url":"https://github.com/tensorflow/tensorflow/commit/12b1ff82b3f26ff8de17e58703231d5a02ef1b8b"}]},"source":{"advisory":"GHSA-m539-j985-hcr8","discovery":"UNKNOWN"}},"nvd":{"publishedDate":"2021-11-05 20:15:00","lastModifiedDate":"2021-11-09 13:56:00","problem_types":["CWE-191"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH","baseScore":5.5,"baseSeverity":"MEDIUM"},"exploitabilityScore":1.8,"impactScore":3.6},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:L/AC:L/Au:N/C:N/I:N/A:P","accessVector":"LOCAL","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"PARTIAL","baseScore":2.1},"severity":"LOW","exploitabilityScore":3.9,"impactScore":2.9,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.0","versionEndExcluding":"2.6.1","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*","versionStartIncluding":"2.5.0","versionEndExcluding":"2.5.2","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*","versionEndExcluding":"2.4.4","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2021","CveId":"41196","Ordinal":"217017","Title":"CVE-2021-41196","CVE":"CVE-2021-41196","Year":"2021"},"notes":[{"CveYear":"2021","CveId":"41196","Ordinal":"1","NoteData":"TensorFlow is an open source platform for machine learning. In affected versions the Keras pooling layers can trigger a segfault if the size of the pool is 0 or if a dimension is negative. This is due to the TensorFlow's implementation of pooling operations where the values in the sliding window are not checked to be strictly positive. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.","Type":"Description","Title":null},{"CveYear":"2021","CveId":"41196","Ordinal":"2","NoteData":"2021-11-05","Type":"Other","Title":"Published"},{"CveYear":"2021","CveId":"41196","Ordinal":"3","NoteData":"2021-11-05","Type":"Other","Title":"Modified"}]}}}