CVE-2021-41197 json
Crashes due to overflow and `CHECK`-fail in ops with large tensor shapes
published 2021-11-05 5 y ago modified 2026-09-08 2 mo ago also BIT-tensorflow-2021-41197 , EUVD-2021-0420 , GHSA-prcg-wp5q-rv7p , PYSEC-2021-390 , PYSEC-2021-607 , PYSEC-2021-805
- cvss
- 5.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 25%
- public exploits
- 0
- none known
Summary
TensorFlow is an open source platform for machine learning. In affected versions TensorFlow allows tensor to have a large number of dimensions and each dimension can be as large as desired. However, the total number of elements in a tensor must fit within an `int64_t`. If an overflow occurs, `MultiplyWithoutOverflow` would return a negative result. In the majority of TensorFlow codebase this then results in a `CHECK`-failure. Newer constructs exist which return a `Status` instead of crashing the binary. This is similar to CVE-2021-29584. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.
Patch / fix
- pypi tensorflow 2.4.4, 2.5.2, 2.6.1, 2.7.0
- pypi tensorflow-cpu 2.4.4, 2.5.2, 2.6.1, 2.7.0
- pypi tensorflow-gpu 2.4.4, 2.5.2, 2.6.1, 2.7.0
- bitnami tensorflow 2.4.4, 2.5.2, 2.6.1
- google tensorflow 2.4.4, 2.5.2, 2.6.1
- tensorflow Arch Linux 2.6.1-1
arch linux advisories AVG-2529
Exploit prediction
0.32% chance of exploitation in the next 30 days, higher than 25% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/tensorflow/tensorflow/issues/46890 referenced PoC, tagged "exploit" by a source, unverified
- github.com https://github.com/tensorflow/tensorflow/issues/51908 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| NVD | 2.0 | 2.1 | AV:L/AC:L/Au:N/C:N/I:N/A:P |
| OSV | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | tensorflow | >=2.6.0, <2.6.1 >=2.5.0, <2.5.2 <2.4.4 >=2.7.0rc0, <2.7.0 |
2.6.1 2.5.2 2.4.4 2.7.0 |
| pypi | tensorflow-cpu | >=2.6.0, <2.6.1 >=2.5.0, <2.5.2 <2.4.4 >=2.7.0rc0, <2.7.0 |
2.6.1 2.5.2 2.4.4 2.7.0 |
| pypi | tensorflow-gpu | >=2.6.0, <2.6.1 >=2.5.0, <2.5.2 <2.4.4 >=2.7.0rc0, <2.7.0 |
2.6.1 2.5.2 2.4.4 2.7.0 |
| bitnami | tensorflow | <2.4.4 >=2.5.0, <2.5.2 >=2.6.0, <2.6.1 |
2.4.4 2.5.2 2.6.1 |
Affected products
- tensorflow tensorflow
Classification
- Weakness
-
- CWE-190 Integer Overflow or Wraparound
References
-
github.com
/tensorflow/tensorflow/commit/7c1692bd417eb4f9b33ead749a41166d6080af85
web, patch, third-party-advisory, advisory
-
github.com
/tensorflow/tensorflow/commit/a871989d7b6c18cdebf2fb4f0e5c5b62fbc19edf
web, patch, third-party-advisory, advisory
-
github.com
/tensorflow/tensorflow/commit/d81b1351da3e8c884ff836b64458d94e4a157c15
web, patch, third-party-advisory, advisory
-
github.com
/tensorflow/tensorflow/security/advisories/GHSA-prcg-wp5q-rv7p
web, patch, third-party-advisory, advisory
-
github.com
/tensorflow/tensorflow/issues/46890
web, exploit, third-party-advisory, advisory, report
-
github.com
/tensorflow/tensorflow/issues/51908
web, exploit, third-party-advisory, advisory, report
-
nvd.nist.gov
/vuln/detail/CVE-2021-41197
advisory, web
-
github.com
/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-607.yaml
web
-
github.com
/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-805.yaml
web
-
github.com
/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-390.yaml
web
-
github.com
/tensorflow/tensorflow
package
Sources
- CVE List CVE-2021-41197
- GitHub Advisory GHSA-prcg-wp5q-rv7p
- NVD CVE-2021-41197
- OSV BIT-tensorflow-2021-41197
- OSV PYSEC-2021-390
- OSV PYSEC-2021-607
- OSV PYSEC-2021-805
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.