CVE-2020-15203: Denial of Service in Tensorflow
7.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.57511%
CWE
Published
9/25/2020
Updated
10/28/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
tensorflow | pip | < 1.15.4 | 1.15.4 |
tensorflow | pip | >= 2.0.0, < 2.0.3 | 2.0.3 |
tensorflow | pip | >= 2.1.0, < 2.1.2 | 2.1.2 |
tensorflow | pip | = 2.2.0 | 2.2.1 |
tensorflow | pip | = 2.3.0 | 2.3.1 |
tensorflow-cpu | pip | < 1.15.4 | 1.15.4 |
tensorflow-cpu | pip | >= 2.0.0, < 2.0.3 | 2.0.3 |
tensorflow-cpu | pip | >= 2.1.0, < 2.1.2 | 2.1.2 |
tensorflow-cpu | pip | = 2.2.0 | 2.2.1 |
tensorflow-cpu | pip | = 2.3.0 | 2.3.1 |
tensorflow-gpu | pip | < 1.15.4 | 1.15.4 |
tensorflow-gpu | pip | >= 2.0.0, < 2.0.3 | 2.0.3 |
tensorflow-gpu | pip | >= 2.1.0, < 2.1.2 | 2.1.2 |
tensorflow-gpu | pip | = 2.2.0 | 2.2.1 |
tensorflow-gpu | pip | = 2.3.0 | 2.3.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from how the format string for printf is constructed in as_string_op.cc. The original code (lines 68-74) used user-controlled 'fill' parameter directly in strings::Appendf(&format_, "%s%d", fill_string.c_str(), width), allowing format string injection. The patch adds validation for allowed flag characters (space, +, -, 0, #) and rejects others. The pre-patch version's lack of validation for printf format flags in the 'fill' parameter is the root cause, making the format string construction logic clearly vulnerable.