Miggo Logo

CVE-2021-29529:
Heap buffer overflow caused by rounding

2.5

CVSS Score
3.1

Basic Information

EPSS Score
0.14398%
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 two key functions: 1) ComputeInterpolationWeights incorrectly calculates bounds without enforcing lower <= upper, allowing invalid indices. 2) OutputLerpForChannels then uses these invalid indices for memory access. The patch explicitly adds a bounds correction in ComputeInterpolationWeights (std::min on lower/upper), confirming this as the root cause. The overflow manifests in OutputLerpForChannels when accessing memory with the corrupted indices.

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 tri***r * ***p *u***r ov*r*low in `t*.r*w_ops.Qu*ntiz**R*siz**ilin**r` *y m*nipul*tin* input v*lu*s so t**t *lo*t roun*in* r*sults in o**-*y-on* *rror in ****ssin* im*** *l*m*nts: ```pyt*on import t*nsor*low *s t* l = [**

Reasoning

T** vuln*r**ility st*ms *rom two k*y *un*tions: *) `*omput*Int*rpol*tionW*i**ts` in*orr**tly **l*ul*t*s *oun*s wit*out *n*or*in* low*r <= upp*r, *llowin* inv*li* in*i**s. *) `OutputL*rp*or***nn*ls` t**n us*s t**s* inv*li* in*i**s *or m*mory ****ss. T