CVE-2022-23570: Null-dereference in Tensorflow
(updated )
When decoding a tensor from protobuf, TensorFlow might do a null-dereference if attributes of some mutable arguments to some operations are missing from the proto. This is guarded by a DCHECK
:
const auto* attr = attrs.Find(arg->s());
DCHECK(attr != nullptr);
if (attr->value_case() == AttrValue::kList) {
// ...
}
However, DCHECK
is a no-op in production builds and an assertion failure in debug builds. In the first case execution proceeds to the dereferencing of the null pointer, whereas in the second case it results in a crash due to the assertion failure.
References
- github.com/advisories/GHSA-9p77-mmrw-69c7
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-79.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-134.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/framework/full_type_util.cc
- github.com/tensorflow/tensorflow/commit/8a513cec4bec15961fbfdedcaa5376522980455c
- github.com/tensorflow/tensorflow/security/advisories/GHSA-9p77-mmrw-69c7
- nvd.nist.gov/vuln/detail/CVE-2022-23570
Detect and mitigate CVE-2022-23570 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 →