CVE-2022-23576: Integer overflow in Tensorflow
(updated )
The implementation of OpLevelCostEstimator::CalculateOutputSize
is vulnerable to an integer overflow if an attacker can create an operation which would involve tensors with large enough number of elements:
for (const auto& dim : output_shape.dim()) {
output_size *= dim.size();
}
Here, we can have a large enough number of dimensions in output_shape.dim()
or just a small number of dimensions being large enough to cause an overflow in the multiplication.
References
- github.com/advisories/GHSA-wm93-f238-7v37
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-85.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-140.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/a1320ec1eac186da1d03f033109191f715b2b130/tensorflow/core/grappler/costs/op_level_cost_estimator.cc
- github.com/tensorflow/tensorflow/commit/b9bd6cfd1c50e6807846af9a86f9b83cafc9c8ae
- github.com/tensorflow/tensorflow/security/advisories/GHSA-wm93-f238-7v37
- nvd.nist.gov/vuln/detail/CVE-2022-23576
Detect and mitigate CVE-2022-23576 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 →