Miggo Logo

CVE-2021-29537: Heap buffer overflow in `QuantizedResizeBilinear`

2.5

CVSS Score
3.1

Basic Information

EPSS Score
0.02934%
Published
5/21/2021
Updated
10/30/2024
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
tensorflowpip< 2.1.42.1.4
tensorflowpip>= 2.2.0, < 2.2.32.2.3
tensorflowpip>= 2.3.0, < 2.3.32.3.3
tensorflowpip>= 2.4.0, < 2.4.22.4.2
tensorflow-cpupip< 2.1.42.1.4
tensorflow-cpupip>= 2.2.0, < 2.2.32.2.3
tensorflow-cpupip>= 2.3.0, < 2.3.32.3.3
tensorflow-cpupip>= 2.4.0, < 2.4.22.4.2
tensorflow-gpupip< 2.1.42.1.4
tensorflow-gpupip>= 2.2.0, < 2.2.32.2.3
tensorflow-gpupip>= 2.3.0, < 2.3.32.3.3
tensorflow-gpupip>= 2.4.0, < 2.4.22.4.2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from the unvalidated direct access to tensor elements in QuantizedResizeBilinearOp's Compute method. The original implementation assumed inputs 2 and 3 were always valid scalars, accessing them via .flat<float>()(0) without checking tensor shape/size. The patch adds explicit scalar validation using TensorShapeUtils::IsScalar, confirming the vulnerable code was in this function. The function's direct memory access pattern matches the described buffer overflow mechanism.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t *n *tt**k*r **n **us* * ***p *u***r ov*r*low in `Qu*ntiz**R*siz**ilin**r` *y p*ssin* in inv*li* t*r*s*ol*s *or t** qu*ntiz*tion: ```pyt*on import t*nsor*low *s t* im***s = t*.*onst*nt([], s**p*=[*], *typ*=t*.qint**) siz* = t*.*onst*nt([]

Reasoning

T** vuln*r**ility st*ms *rom t** unv*li**t** *ir**t ****ss to t*nsor *l*m*nts in `Qu*ntiz**R*siz**ilin**rOp`'s `*omput*` m*t*o*. T** ori*in*l impl*m*nt*tion *ssum** inputs * *n* * w*r* *lw*ys v*li* s**l*rs, ****ssin* t**m vi* `.*l*t<*lo*t>()`(*) wit*