{"id":"CVE-2022-23574","aliases":["GHSA-77gp-3h4r-6428","BIT-tensorflow-2022-23574","PYSEC-2022-138","PYSEC-2022-83","PYSEC-2026-3127"],"title":"Out of bounds read and write in Tensorflow","summary":"Out of bounds read and write in Tensorflow","severity":"high","cvss":8.8,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","vendor":"tensorflow","product":"tensorflow","ecosystem":"pip","affected":["tensorflow < 2.5.3","tensorflow >= 2.6.0, < 2.6.3","tensorflow >= 2.7.0, < 2.7.1","tensorflow-cpu < 2.5.3","tensorflow-cpu >= 2.6.0, < 2.6.3","tensorflow-cpu >= 2.7.0, < 2.7.1","tensorflow-gpu < 2.5.3","tensorflow-gpu >= 2.6.0, < 2.6.3","tensorflow-gpu >= 2.7.0, < 2.7.1"],"patched":["tensorflow 2.5.3","tensorflow 2.6.3","tensorflow 2.7.1","tensorflow-cpu 2.5.3","tensorflow-cpu 2.6.3","tensorflow-cpu 2.7.1","tensorflow-gpu 2.5.3","tensorflow-gpu 2.6.3","tensorflow-gpu 2.7.1"],"published":"2022-02-09","updated":"2026-07-13","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-77gp-3h4r-6428","references":[{"url":"https://github.com/tensorflow/tensorflow/security/advisories/GHSA-77gp-3h4r-6428"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-23574"},{"url":"https://github.com/tensorflow/tensorflow/commit/0657c83d08845cc434175934c642299de2c0f042"},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-83.yaml"},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-138.yaml"},{"url":"https://github.com/tensorflow/tensorflow"},{"url":"https://github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/framework/full_type_util.cc#L81-L102"}],"tags":["osv","pip"],"epss":0.00844,"epssPercentile":0.56429,"ingestedAt":"2026-07-13T18:57:54.262Z","slug":"CVE-2022-23574","body":"## Overview\n\n### Impact\nThere is a typo in TensorFlow's [`SpecializeType`](https://github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/framework/full_type_util.cc#L81-L102) which results in heap OOB read/write:\n\n```cc\nfor (int i = 0; i < op_def.output_arg_size(); i++) {\n  // ...\n  for (int j = 0; j < t->args_size(); j++) {\n    auto* arg = t->mutable_args(i);\n    // ...\n  }\n} \n```\n\nDue to a typo, `arg` is initialized to the `i`th mutable argument in a loop where the loop index is `j`. Hence it is possible to assign to `arg` from outside the vector of arguments. Since this is a mutable proto value, it allows both read and write to outside of bounds data.\n\n### Patches\nWe have patched the issue in GitHub commit [0657c83d08845cc434175934c642299de2c0f042](https://github.com/tensorflow/tensorflow/commit/0657c83d08845cc434175934c642299de2c0f042).\n\nThe fix will be included in TensorFlow 2.8.0. We will also cherrypick this commit on TensorFlow 2.7.1, and TensorFlow 2.6.3, 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## Affected packages\n\n- `tensorflow < 2.5.3`\n- `tensorflow >= 2.6.0, < 2.6.3`\n- `tensorflow >= 2.7.0, < 2.7.1`\n- `tensorflow-cpu < 2.5.3`\n- `tensorflow-cpu >= 2.6.0, < 2.6.3`\n- `tensorflow-cpu >= 2.7.0, < 2.7.1`\n- `tensorflow-gpu < 2.5.3`\n- `tensorflow-gpu >= 2.6.0, < 2.6.3`\n- `tensorflow-gpu >= 2.7.0, < 2.7.1`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `tensorflow 2.5.3`\n- `tensorflow 2.6.3`\n- `tensorflow 2.7.1`\n- `tensorflow-cpu 2.5.3`\n- `tensorflow-cpu 2.6.3`\n- `tensorflow-cpu 2.7.1`\n- `tensorflow-gpu 2.5.3`\n- `tensorflow-gpu 2.6.3`\n- `tensorflow-gpu 2.7.1`","depth":"twilight","depthScore":49,"depthScoreParts":{"impact":48.4,"likelihood":0.2,"exploitation":0,"ransomware":0},"changes":[]}