CVE-2021-37654: Heap OOB and CHECK fail in `ResourceGather`
7.3
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.00961%
CWE
Published
8/25/2021
Updated
11/13/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
tensorflow | pip | < 2.3.4 | 2.3.4 |
tensorflow | pip | >= 2.4.0, < 2.4.3 | 2.4.3 |
tensorflow | pip | = 2.5.0 | 2.5.1 |
tensorflow-cpu | pip | < 2.3.4 | 2.3.4 |
tensorflow-cpu | pip | >= 2.4.0, < 2.4.3 | 2.4.3 |
tensorflow-cpu | pip | = 2.5.0 | 2.5.1 |
tensorflow-gpu | pip | < 2.3.4 | 2.3.4 |
tensorflow-gpu | pip | >= 2.4.0, < 2.4.3 | 2.4.3 |
tensorflow-gpu | pip | = 2.5.0 | 2.5.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from the ResourceGatherOp implementation where multiple loops use batch_dims_ without validating it against the tensor's rank. The code shown in the advisory demonstrates three critical loops that iterate based on batch_dims_ value, which could exceed params.dims(). The patched commit adds validation for batch_dims_ <= params.dims(), confirming this as the root cause. The Compute function is the entry point for this operation and contains the vulnerable dimension-handling logic.