{"id":"CVE-2022-29197","summary":"Missing validation causes denial of service in TensorFlow via `UnsortedSegmentJoin`","details":"TensorFlow is an open source platform for machine learning. Prior to versions 2.9.0, 2.8.1, 2.7.2, and 2.6.4, the implementation of `tf.raw_ops.UnsortedSegmentJoin` does not fully validate the input arguments. This results in a `CHECK`-failure which can be used to trigger a denial of service attack. The code assumes `num_segments` is a scalar but there is no validation for this before accessing its value. Versions 2.9.0, 2.8.1, 2.7.2, and 2.6.4 contain a patch for this issue.","aliases":["BIT-tensorflow-2022-29197","GHSA-hrg5-737c-2p56"],"modified":"2026-04-02T07:59:38.534051Z","published":"2022-05-20T21:55:18Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/29xxx/CVE-2022-29197.json","cwe_ids":["CWE-20"],"cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/tensorflow/tensorflow/blob/f3b9bf4c3c0597563b289c0512e98d4ce81f886e/tensorflow/core/kernels/unsorted_segment_join_op.cc#L92-L95"},{"type":"WEB","url":"https://github.com/tensorflow/tensorflow/releases/tag/v2.6.4"},{"type":"WEB","url":"https://github.com/tensorflow/tensorflow/releases/tag/v2.7.2"},{"type":"WEB","url":"https://github.com/tensorflow/tensorflow/releases/tag/v2.8.1"},{"type":"WEB","url":"https://github.com/tensorflow/tensorflow/releases/tag/v2.9.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/29xxx/CVE-2022-29197.json"},{"type":"ADVISORY","url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hrg5-737c-2p56"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-29197"},{"type":"FIX","url":"https://github.com/tensorflow/tensorflow/commit/13d38a07ce9143e044aa737cfd7bb759d0e9b400"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/tensorflow/tensorflow","events":[{"introduced":"0"},{"fixed":"33ed2b11cb8e879d86c371700e6573db1814a69e"}],"database_specific":{"versions":[{"introduced":"0"},{"fixed":"2.6.4"}]}},{"type":"GIT","repo":"https://github.com/tensorflow/tensorflow","events":[{"introduced":"ce35e5c3a8efdb8161c6a85c8fb9ffb5bbdc9ffd"},{"fixed":"dd7b8a3c1714d0052ce4b4a2fd8dcef927439a24"}],"database_specific":{"versions":[{"introduced":"2.7.0rc0"},{"fixed":"2.7.2"}]}},{"type":"GIT","repo":"https://github.com/tensorflow/tensorflow","events":[{"introduced":"804ef7223ef08fd14c274b4a4044cc4aeee68863"},{"fixed":"0516d4d8bced506cae97dc3cb45dbd2fe4311f26"}],"database_specific":{"versions":[{"introduced":"2.8.0rc0"},{"fixed":"2.8.1"}]}},{"type":"GIT","repo":"https://github.com/tensorflow/tensorflow","events":[{"introduced":"8727d035e7aa593720d16a5f57f70f3b5a93bd00"},{"fixed":"8a20d54a3c1bfa38c03ea99a2ad3c1b0a45dfa95"}],"database_specific":{"versions":[{"introduced":"2.9.0rc0"},{"fixed":"2.9.0"}]}}],"versions":["0.12.0-rc0","0.12.0-rc1","0.12.1","0.5.0","0.6.0","tflite-v0.1.7","v0.10.0","v0.10.0rc0","v0.11.0","v0.11.0rc0","v0.11.0rc1","v0.11.0rc2","v0.12.0","v0.6.0","v0.7.0","v0.7.1","v0.8.0","v0.8.0rc0","v0.9.0","v0.9.0rc0","v1.0.0","v1.0.0-alpha","v1.0.0-rc0","v1.0.0-rc1","v1.0.0-rc2","v1.0.1","v1.1.0","v1.1.0-rc0","v1.1.0-rc1","v1.1.0-rc2","v1.10.0","v1.10.0-rc0","v1.10.0-rc1","v1.10.1","v1.11.0","v1.11.0-rc0","v1.11.0-rc1","v1.11.0-rc2","v1.12.0","v1.12.0-rc0","v1.12.0-rc1","v1.12.0-rc2","v1.12.1","v1.12.2","v1.12.3","v1.13.0-rc0","v1.13.0-rc1","v1.13.0-rc2","v1.13.1","v1.13.2","v1.14.0","v1.14.0-rc0","v1.14.0-rc1","v1.15.0","v1.15.0-rc0","v1.15.0-rc1","v1.15.0-rc2","v1.15.0-rc3","v1.15.2","v1.15.3","v1.15.4","v1.15.5","v1.2.0","v1.2.0-rc0","v1.2.0-rc1","v1.2.0-rc2","v1.2.1","v1.3.0","v1.3.0-rc0","v1.3.0-rc1","v1.3.0-rc2","v1.3.1","v1.4.0","v1.4.0-rc0","v1.4.0-rc1","v1.4.1","v1.5.0","v1.5.0-rc0","v1.5.0-rc1","v1.5.1","v1.6.0","v1.6.0-rc0","v1.6.0-rc1","v1.7.0","v1.7.0-rc0","v1.7.0-rc1","v1.7.1","v1.8.0","v1.8.0-rc0","v1.8.0-rc1","v1.9.0","v1.9.0-rc0","v1.9.0-rc1","v1.9.0-rc2","v2.0.0","v2.0.0-alpha0","v2.0.0-beta0","v2.0.0-beta1","v2.0.0-rc0","v2.0.0-rc1","v2.0.0-rc2","v2.0.1","v2.0.2","v2.0.3","v2.0.4","v2.1.0","v2.1.0-rc0","v2.1.0-rc1","v2.1.0-rc2","v2.1.1","v2.1.2","v2.1.3","v2.1.4","v2.10.0","v2.10.0-rc0","v2.10.0-rc1","v2.10.0-rc2","v2.10.0-rc3","v2.10.1","v2.11.0","v2.11.0-rc0","v2.11.0-rc1","v2.11.0-rc2","v2.11.1","v2.12.0","v2.12.0-rc0","v2.12.0-rc1","v2.12.1","v2.13.0","v2.13.0-rc0","v2.13.0-rc1","v2.13.0-rc2","v2.13.1","v2.14.0","v2.14.0-rc0","v2.14.0-rc1","v2.14.1","v2.15.0","v2.15.0-rc0","v2.15.0-rc1","v2.15.1","v2.16.0-rc0","v2.16.1","v2.16.2","v2.17.0","v2.17.0-rc0","v2.17.0-rc1","v2.17.1","v2.18.0","v2.18.0-rc0","v2.18.0-rc1","v2.18.0-rc2","v2.18.1","v2.19.0","v2.19.0-rc0","v2.19.1","v2.2.0","v2.2.0-rc0","v2.2.0-rc1","v2.2.0-rc2","v2.2.0-rc3","v2.2.0-rc4","v2.2.1","v2.2.2","v2.2.3","v2.20.0","v2.20.0-rc0","v2.21.0","v2.21.0-rc0","v2.21.0-rc1","v2.3.0","v2.3.0-rc0","v2.3.0-rc1","v2.3.0-rc2","v2.3.1","v2.3.2","v2.3.3","v2.3.4","v2.4.0","v2.4.0-rc0","v2.4.0-rc1","v2.4.0-rc2","v2.4.0-rc3","v2.4.0-rc4","v2.4.1","v2.4.2","v2.4.3","v2.4.4","v2.5.0","v2.5.0-rc0","v2.5.0-rc1","v2.5.0-rc2","v2.5.0-rc3","v2.5.1","v2.5.2","v2.5.3","v2.6.0","v2.6.0-rc0","v2.6.0-rc1","v2.6.0-rc2","v2.6.1","v2.6.2","v2.6.3","v2.7.0","v2.7.0-rc0","v2.7.0-rc1","v2.7.1","v2.7.2","v2.7.3","v2.7.4","v2.8.0","v2.8.0-rc0","v2.8.0-rc1","v2.8.1","v2.8.2","v2.8.3","v2.8.4","v2.9.0","v2.9.0-rc0","v2.9.0-rc1","v2.9.0-rc2","v2.9.1","v2.9.2","v2.9.3"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-29197.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"}]}