GitHub Advisoryadvisory · PyPI
GHSA-3rcw-9p9x-582v Code injection in `saved_model_cli`
MEDIUM
Official page ↗
- Aliases
- CVE-2021-41228
- Ecosystem
- PyPI
- Packages
- tensorflow, tensorflow-cpu, tensorflow-gpu
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H
- Weaknesses
- CWE-78, CWE-94
- Reviewed
- 2021-11-08
Affected packages
• 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: >= 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-cpu: >= 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
• PyPI tensorflow-gpu: >= 2.6.0, < 2.6.1 → fixed in 2.6.1
Description
Impact
TensorFlow's `saved_model_cli` tool is vulnerable to a code injection as it calls `eval` on user supplied strings
```python
def preprocess_input_exprs_arg_string(input_exprs_str):
...
for input_raw in filter(bool, input_exprs_str.split(';')):
...
input_key, expr = input_raw.split('=', 1)
input_dict[input_key] = eval(expr)
...
```
This can be used by attackers to run arbitrary code on the plaform where the CLI tool runs.
However, given that the tool is always run manually, the impact of this is not severe. We have patched this by adding a `safe` flag which defaults to `True` and an explicit warning for users.
Patches
We have patched the issue in GitHub commit 8b202f08d52e8206af2bdb2112a62fafbc546ec7.
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.
Attribution
This vulnerability has been reported by Omer Kaspi from Vdoo.
Related
Alias · CVE (1)
- CVE-2021-41228 TensorFlow is an open source platform for machine learning. vulnerability
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-3rcw-9p9x-582v web
- https://nvd.nist.gov/vuln/detail/CVE-2021-41228 advisory
- https://github.com/tensorflow/tensorflow/commit/8b202f08d52e8206af2bdb2112a62fafbc546ec7 web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-637.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-835.yaml web
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-420.yaml web
- https://github.com/tensorflow/tensorflow package