{"api_version":"1","generated_at":"2026-07-23T14:02:05+00:00","cve":"CVE-2021-29515","urls":{"html":"https://cve.report/CVE-2021-29515","api":"https://cve.report/api/cve/CVE-2021-29515.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2021-29515","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2021-29515"},"summary":{"title":"CVE-2021-29515","description":"TensorFlow is an end-to-end open source platform for machine learning. The implementation of `MatrixDiag*` operations(https://github.com/tensorflow/tensorflow/blob/4c4f420e68f1cfaf8f4b6e8e3eb857e9e4c3ff33/tensorflow/core/kernels/linalg/matrix_diag_op.cc#L195-L197) does not validate that the tensor arguments are non-empty. 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.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2021-05-14 20:15:00","updated_at":"2021-05-20 16:28:00"},"problem_types":["CWE-476"],"metrics":[],"references":[{"url":"https://github.com/tensorflow/tensorflow/commit/a7116dd3913c4a4afd2a3a938573aa7c785fdfc6","name":"https://github.com/tensorflow/tensorflow/commit/a7116dd3913c4a4afd2a3a938573aa7c785fdfc6","refsource":"MISC","tags":[],"title":"Validate `MatrixDiagV{2,3}` arguments to prevent breakage. · tensorflow/tensorflow@a7116dd · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hc6c-75p4-hmq4","name":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hc6c-75p4-hmq4","refsource":"CONFIRM","tags":[],"title":"Reference binding to null pointer in `MatrixDiag*` ops · Advisory · tensorflow/tensorflow · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-29515","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-29515","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2021","cve_id":"29515","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-29515","qid":"982531","title":"Python (pip) Security Update for tensorflow-gpu (GHSA-hc6c-75p4-hmq4)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2021-29515","STATE":"PUBLIC","TITLE":"Reference binding to null pointer in `MatrixDiag*` ops"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"tensorflow","version":{"version_data":[{"version_value":"< 2.1.4"},{"version_value":">= 2.2.0, < 2.2.3"},{"version_value":">= 2.3.0, < 2.3.3"},{"version_value":">= 2.4.0, < 2.4.2"}]}}]},"vendor_name":"tensorflow"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"TensorFlow is an end-to-end open source platform for machine learning. The implementation of `MatrixDiag*` operations(https://github.com/tensorflow/tensorflow/blob/4c4f420e68f1cfaf8f4b6e8e3eb857e9e4c3ff33/tensorflow/core/kernels/linalg/matrix_diag_op.cc#L195-L197) does not validate that the tensor arguments are non-empty. 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."}]},"impact":{"cvss":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"LOW","baseScore":2.5,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-476: NULL Pointer Dereference"}]}]},"references":{"reference_data":[{"name":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hc6c-75p4-hmq4","refsource":"CONFIRM","url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hc6c-75p4-hmq4"},{"name":"https://github.com/tensorflow/tensorflow/commit/a7116dd3913c4a4afd2a3a938573aa7c785fdfc6","refsource":"MISC","url":"https://github.com/tensorflow/tensorflow/commit/a7116dd3913c4a4afd2a3a938573aa7c785fdfc6"}]},"source":{"advisory":"GHSA-hc6c-75p4-hmq4","discovery":"UNKNOWN"}},"nvd":{"publishedDate":"2021-05-14 20:15:00","lastModifiedDate":"2021-05-20 16:28:00","problem_types":["CWE-476"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:L/AC:L/Au:N/C:P/I:P/A:P","accessVector":"LOCAL","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":4.6},"severity":"MEDIUM","exploitabilityScore":3.9,"impactScore":6.4,"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.4.0","versionEndExcluding":"2.4.2","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*","versionStartIncluding":"2.3.0","versionEndExcluding":"2.3.3","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*","versionStartIncluding":"2.2.0","versionEndExcluding":"2.2.3","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:*","versionEndExcluding":"2.1.4","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2021","CveId":"29515","Ordinal":"204719","Title":"CVE-2021-29515","CVE":"CVE-2021-29515","Year":"2021"},"notes":[{"CveYear":"2021","CveId":"29515","Ordinal":"1","NoteData":"TensorFlow is an end-to-end open source platform for machine learning. The implementation of `MatrixDiag*` operations(https://github.com/tensorflow/tensorflow/blob/4c4f420e68f1cfaf8f4b6e8e3eb857e9e4c3ff33/tensorflow/core/kernels/linalg/matrix_diag_op.cc#L195-L197) does not validate that the tensor arguments are non-empty. 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.","Type":"Description","Title":null},{"CveYear":"2021","CveId":"29515","Ordinal":"2","NoteData":"2021-05-14","Type":"Other","Title":"Published"},{"CveYear":"2021","CveId":"29515","Ordinal":"3","NoteData":"2021-05-14","Type":"Other","Title":"Modified"}]}}}