Miggo Logo

CVE-2021-29543: CHECK-fail in `CTCGreedyDecoder`

2.5

CVSS Score
3.1

Basic Information

EPSS Score
0.01803%
Published
5/21/2021
Updated
10/31/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 original implementation in CTCGreedyDecoderOp::Compute where a CHECK_LT assertion was used to validate indices without prior input validation. The provided exploit uses an input with shape [18, 2, 0], causing dimension(1) to be 0. The loop in Compute attempts to access input_list_t[t] without checking if dimension(1) > 0 first, leading to a CHECK failure. The patch adds an OP_REQUIRES check for this condition, confirming this as the vulnerable code path.

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 * **ni*l o* s*rvi** vi* * `****K`-**il in `t*.r*w_ops.*T**r***y***o**r`: ```pyt*on import t*nsor*low *s t* inputs = t*.*onst*nt([], s**p*=[**, *, *], *typ*=t*.*lo*t**) s*qu*n**_l*n*t* = t*.*onst*nt([-***, **], s**

Reasoning

T** vuln*r**ility st*ms *rom t** ori*in*l impl*m*nt*tion in *T**r***y***o**rOp::*omput* w**r* * ****K_LT *ss*rtion w*s us** to v*li**t* in*i**s wit*out prior input v*li**tion. T** provi*** *xploit us*s *n input wit* s**p* [**, *, *], **usin* *im*nsio