Miggo Logo

CVE-2022-35989:
TensorFlow vulnerable to `CHECK` fail in `MaxPool`

5.9

CVSS Score

Basic Information

EPSS Score
-
Published
9/16/2022
Updated
1/28/2023
KEV Status
No
Technology
TechnologyPython

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
tensorflowpip< 2.7.22.7.2
tensorflowpip>= 2.8.0, < 2.8.12.8.1
tensorflowpip>= 2.9.0, < 2.9.12.9.1
tensorflow-cpupip< 2.7.22.7.2
tensorflow-cpupip>= 2.8.0, < 2.8.12.8.1
tensorflow-cpupip>= 2.9.0, < 2.9.12.9.1
tensorflow-gpupip< 2.7.22.7.2
tensorflow-gpupip>= 2.8.0, < 2.8.12.8.1
tensorflow-gpupip>= 2.9.0, < 2.9.12.9.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The GitHub commit patching this vulnerability specifically modifies the MaxPoolingNoMaskOp GPU kernel implementation in maxpooling_op.cc. The added code checks for empty output shapes and returns early, indicating this was the vulnerable code path. The CVE description explicitly mentions GPU kernel failures when ksize exceeds input dimensions, which aligns with the code changes made to handle degenerate pooling outputs. The test case added in pooling_ops_test.py validates this scenario, confirming the affected functionality.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t W**n `M*xPool` r***iv*s * win*ow siz* input *rr*y `ksiz*` wit* *im*nsions *r**t*r t**n its input t*nsor `input`, t** *PU k*rn*l *iv*s * `****K` **il t**t **n ** us** to tri***r * **ni*l o* s*rvi** *tt**k. ```pyt*on import t*nsor*low *s t*

Reasoning

T** *it*u* *ommit p*t**in* t*is vuln*r**ility sp**i*i**lly mo*i*i*s t** M*xPoolin*NoM*skOp *PU k*rn*l impl*m*nt*tion in m*xpoolin*_op.**. T** ***** *o** ****ks *or *mpty output s**p*s *n* r*turns **rly, in*i**tin* t*is w*s t** vuln*r**l* *o** p*t*. T