CVE-2022-21725: Division by zero in Tensorflow
6.5
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.43492%
CWE
Published
2/10/2022
Updated
11/13/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
tensorflow | pip | < 2.5.3 | 2.5.3 |
tensorflow | pip | >= 2.6.0, < 2.6.3 | 2.6.3 |
tensorflow | pip | = 2.7.0 | 2.7.1 |
tensorflow-cpu | pip | < 2.5.3 | 2.5.3 |
tensorflow-cpu | pip | >= 2.6.0, < 2.6.3 | 2.6.3 |
tensorflow-cpu | pip | = 2.7.0 | 2.7.1 |
tensorflow-gpu | pip | < 2.5.3 | 2.5.3 |
tensorflow-gpu | pip | >= 2.6.0, < 2.6.3 | 2.6.3 |
tensorflow-gpu | pip | = 2.7.0 | 2.7.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems directly from GetOutputSize
's lack of stride validation. The function
computes output dimensions using (input - filter + stride)/stride (VALID padding) or (input + stride - 1)/stride (SAME padding), both of which divide by 'stride'. The provided Python reproducer triggers this by passing stride=0, and the CVE description explicitly states the missing stride check in this function
. The commit patching the issue adds validation in the caller (OpDimensionsFromInputs
), but the root vulnerability resides in GetOutputSize
's unsafe division.