CVE-2021-37639:
Null pointer dereference and heap OOB read in operations restoring tensors
8.4
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.00962%
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:N/UI:N/S:U/C:H/I:H/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 directly from the implementation of RestoreTensor in save_restore_tensor.cc. The commit diff shows the patch adds validation for tensor_name list size in this function, confirming it was previously missing bounds checks. Both tf.raw_ops.Restore and RestoreSlice operations ultimately call this core restoration logic. The lack of size validation before accessing tensor_name_t.flat<tstring>()(restore_index) directly enables the described CWE-125 and CWE-476 vulnerabilities.