CVE-2021-29580: Undefined behavior and `CHECK`-fail in `FractionalMaxPoolGrad`
2.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.01803%
CWE
Published
5/21/2021
Updated
11/1/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
tensorflow | pip | < 2.1.4 | 2.1.4 |
tensorflow | pip | >= 2.2.0, < 2.2.3 | 2.2.3 |
tensorflow | pip | >= 2.3.0, < 2.3.3 | 2.3.3 |
tensorflow | pip | >= 2.4.0, < 2.4.2 | 2.4.2 |
tensorflow-cpu | pip | < 2.1.4 | 2.1.4 |
tensorflow-cpu | pip | >= 2.2.0, < 2.2.3 | 2.2.3 |
tensorflow-cpu | pip | >= 2.3.0, < 2.3.3 | 2.3.3 |
tensorflow-cpu | pip | >= 2.4.0, < 2.4.2 | 2.4.2 |
tensorflow-gpu | pip | < 2.1.4 | 2.1.4 |
tensorflow-gpu | pip | >= 2.2.0, < 2.2.3 | 2.2.3 |
tensorflow-gpu | pip | >= 2.3.0, < 2.3.3 | 2.3.3 |
tensorflow-gpu | pip | >= 2.4.0, < 2.4.2 | 2.4.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems directly from the FractionalMaxPoolGradOp
's Compute()
function implementation, which lacked essential validation
checks as shown in the commit diff. The patch adds OP_REQUIRES
validations for tensor dimensions and non-empty status, confirming these checks were missing in the vulnerable versions. The function's role in processing gradient calculations without input validation
matches both described attack scenarios (empty tensors and rank mismatch).