Heap buffer overflow in Tensorflow
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
In Tensorflow before version 2.3.1, the `RaggedCountSparseOutput` implementation does not validate that the input arguments form a valid ragged tensor. In particular, there is no validation that the values in the `splits` tensor generate a valid partitioning of the `values` tensor. Hence, the code is prone to heap buffer overflow. If `split_values` does not end with a value at least `num_values` then the `while` loop condition will trigger a read outside of the bounds of `split_values` once `batch_idx` grows too large. The issue is patched in commit 3cbb917b4714766030b28eba9fb41bb97ce9ee02 and is released in TensorFlow version 2.3.1.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| tensorflow | = 2.3.0 | — | No fix listed | CNA | |
| — | tensorflow (PyPI) | 2.3.0 to before 2.3.1 | 2.3.1 | Patch available | GHSA-p5f8-gfw5-33w4 |
| — | tensorflow-cpu (PyPI) | 2.3.0 to before 2.3.1 | 2.3.1 | Patch available | GHSA-p5f8-gfw5-33w4 |
| — | tensorflow-gpu (PyPI) | 2.3.0 to before 2.3.1 | 2.3.1 | Patch available | GHSA-p5f8-gfw5-33w4 |
- tensorflow VendorGoogle Affected = 2.3.0 Fixed in — No fix listed CNA
- tensorflow (PyPI) Vendor— Affected 2.3.0 to before 2.3.1 Fixed in 2.3.1 Patch available GHSA-p5f8-gfw5-33w4
- tensorflow-cpu (PyPI) Vendor— Affected 2.3.0 to before 2.3.1 Fixed in 2.3.1 Patch available GHSA-p5f8-gfw5-33w4
- tensorflow-gpu (PyPI) Vendor— Affected 2.3.0 to before 2.3.1 Fixed in 2.3.1 Patch available GHSA-p5f8-gfw5-33w4
Remediation
- Fix · GHSA-p5f8-gfw5-33w4 tensorflow (PyPI) Fixed in 2.3.1 Advisory →
- Fix · GHSA-p5f8-gfw5-33w4 tensorflow-cpu (PyPI) Fixed in 2.3.1 Advisory →
- Fix · GHSA-p5f8-gfw5-33w4 tensorflow-gpu (PyPI) Fixed in 2.3.1 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2020-15201
- 2026-10-03 Alias added: GHSA-p5f8-gfw5-33w4
References
Advisory 2
Other 4
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-281.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2020-316.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2020-124.yaml
- https://github.com/tensorflow/tensorflow
More Google Tensorflow vulnerabilities
- TI-2022-20241 FractionalMaxPool and FractionalAVGPool heap out-of-bounds acess in Tensorflow CVSS 3.1CRITICAL 9.8
- TI-2022-07640 Integer overflow in Tensorflow CVSS 3.1CRITICAL 9.8
- TI-2022-07627 Out of bounds read and write in Tensorflow CVSS 3.1HIGH 8.8
- TI-2022-07619 Out of bounds write in Tensorflow CVSS 3.1HIGH 8.8
- TI-2022-07613 Read and Write outside of bounds in TFLite CVSS 3.1HIGH 8.8
- TI-2022-07612 Integer overflow in TFLite CVSS 3.1HIGH 8.8
Sources
- CVE-2020-15201 · CVE Program
- CVE-2020-15201 · NVD
- FIRST EPSS
- GHSA-p5f8-gfw5-33w4 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences