GitHub Advisoryadvisory · PyPI

GHSA-j86v-p27c-73fm Unitialized access in `EinsumHelper::ParseEquation`

HIGH Published 2021-11-10 Modified 2024-11-13 Official page ↗
Aliases
CVE-2021-41201
Ecosystem
PyPI
Packages
tensorflow, tensorflow-cpu, tensorflow-gpu
Severity
High
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-824
Reviewed
2021-11-08

Affected packages

• PyPI tensorflow: >= 2.6.0, < 2.6.1 → fixed in 2.6.1 • PyPI tensorflow: >= 2.5.0, < 2.5.2 → fixed in 2.5.2 • PyPI tensorflow: < 2.4.4 → fixed in 2.4.4 • PyPI tensorflow-cpu: >= 2.6.0, < 2.6.1 → fixed in 2.6.1 • PyPI tensorflow-cpu: >= 2.5.0, < 2.5.2 → fixed in 2.5.2 • PyPI tensorflow-cpu: < 2.4.4 → fixed in 2.4.4 • PyPI tensorflow-gpu: >= 2.6.0, < 2.6.1 → fixed in 2.6.1 • PyPI tensorflow-gpu: >= 2.5.0, < 2.5.2 → fixed in 2.5.2 • PyPI tensorflow-gpu: < 2.4.4 → fixed in 2.4.4

Description

Impact 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`. ```cc for (int i = 0; i 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. Patches We have patched the issue in GitHub commit f09caa532b6e1ac8d2aa61b7832c78c5b79300c6. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range. For more information Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.

Related

Alias · CVE (1)

  • CVE-2021-41201 TensorFlow is an open source platform for machine learning. vulnerability

Weakness · CWE (1)

  • CWE-824 Access of Uninitialized Pointer weakness

References