Miggo Logo

CVE-2020-15205: Data leak in Tensorflow

9.1

CVSS Score
3.1

Basic Information

EPSS Score
0.66785%
Published
9/25/2020
Updated
10/30/2024
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
tensorflowpip< 1.15.41.15.4
tensorflowpip>= 2.0.0, < 2.0.32.0.3
tensorflowpip>= 2.1.0, < 2.1.22.1.2
tensorflowpip= 2.2.02.2.1
tensorflowpip= 2.3.02.3.1
tensorflow-cpupip< 1.15.41.15.4
tensorflow-cpupip>= 2.0.0, < 2.0.32.0.3
tensorflow-cpupip>= 2.1.0, < 2.1.22.1.2
tensorflow-cpupip= 2.2.02.2.1
tensorflow-cpupip= 2.3.02.3.1
tensorflow-gpupip< 1.15.41.15.4
tensorflow-gpupip>= 2.0.0, < 2.0.32.0.3
tensorflow-gpupip>= 2.1.0, < 2.1.22.1.2
tensorflow-gpupip= 2.2.02.2.1
tensorflow-gpupip= 2.3.02.3.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability root cause was identified in the Compute method of StringNGramsOp where data_splits validation was missing. The GitHub patch shows validation logic was added to this exact function in string_ngrams_op.cc, checking split values against input data size. The CVE description explicitly references tf.raw_ops.StringNGrams as the vulnerable entry point, which maps to this implementation. The test case additions in raw_ops_test.py further confirm the vulnerability was in the core StringNGrams operation handling.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t T** `**t*_splits` *r*um*nt o* [`t*.r*w_ops.Strin*N*r*ms`](*ttps://www.t*nsor*low.or*/*pi_*o*s/pyt*on/t*/r*w_ops/Strin*N*r*ms) l**ks v*li**tion. T*is *llows * us*r to p*ss v*lu*s t**t **n **us* ***p ov*r*low *rrors *n* *v*n l**k *ont*nts o*

Reasoning

T** vuln*r**ility root **us* w*s i**nti*i** in t** *omput* m*t*o* o* Strin*N*r*msOp w**r* **t*_splits v*li**tion w*s missin*. T** *it*u* p*t** s*ows v*li**tion lo*i* w*s ***** to t*is *x**t *un*tion in strin*_n*r*ms_op.**, ****kin* split v*lu*s ***in