CVE-2022-23574: Out of bounds read and write in Tensorflow
(updated )
There is a typo in TensorFlow’s SpecializeType
which results in heap OOB read/write:
for (int i = 0; i < op_def.output_arg_size(); i++) {
// ...
for (int j = 0; j < t->args_size(); j++) {
auto* arg = t->mutable_args(i);
// ...
}
}
Due 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.
References
- github.com/advisories/GHSA-77gp-3h4r-6428
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-83.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-138.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/framework/full_type_util.cc
- github.com/tensorflow/tensorflow/commit/0657c83d08845cc434175934c642299de2c0f042
- github.com/tensorflow/tensorflow/security/advisories/GHSA-77gp-3h4r-6428
- nvd.nist.gov/vuln/detail/CVE-2022-23574
Detect and mitigate CVE-2022-23574 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →