CVE-2021-41201: Unitialized access in `EinsumHelper::ParseEquation`
(updated )
During execution, EinsumHelper::ParseEquation() is supposed to set the flags in input_has_ellipsis vector and *output_has_ellipsis boolean to indicate whether there is ellipsis in the corresponding inputs and output.
However, the code only changes these flags to true and never assigns false.
for (int i = 0; i < num_inputs; ++i) {
input_label_counts->at(i).resize(num_labels);
for (const int label : input_labels->at(i)) {
if (label != kEllipsisLabel)
input_label_counts->at(i)[label] += 1;
else
input_has_ellipsis->at(i) = true;
}
}
output_label_counts->resize(num_labels);
for (const int label : *output_labels) {
if (label != kEllipsisLabel)
output_label_counts->at(label) += 1;
else
*output_has_ellipsis = true;
}
This results in unitialized variable access if callers assume that EinsumHelper::ParseEquation() always sets these flags.
References
- github.com/advisories/GHSA-j86v-p27c-73fm
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-611.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-809.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-394.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/commit/f09caa532b6e1ac8d2aa61b7832c78c5b79300c6
- github.com/tensorflow/tensorflow/security/advisories/GHSA-j86v-p27c-73fm
- nvd.nist.gov/vuln/detail/CVE-2021-41201
Code Behaviors & Features
Detect and mitigate CVE-2021-41201 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →