Segfault in Tensorflow
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-476.
Summary
In eager mode, TensorFlow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1 does not set the session state. Hence, calling `tf.raw_ops.GetSessionHandle` or `tf.raw_ops.GetSessionHandleV2` results in a null pointer dereference In linked snippet, in eager mode, `ctx->session_state()` returns `nullptr`. Since code immediately dereferences this, we get a segmentation fault. The issue is patched in commit 9a133d73ae4b4664d22bd1aa6d654fec13c52ee1, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 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 | before 1.15.4; 2.0.0 to before 2.0.3; 2.1.0 to before 2.1.2; 2.2.0 to before 2.2.1; 2.3.0 to before 2.3.1 | 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 | Patch available | CNA | |
| — | tensorflow (PyPI) | before 1.15.4 | 1.15.4 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow (PyPI) | 2.0.0 to before 2.0.3 | 2.0.3 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow (PyPI) | 2.1.0 to before 2.1.2 | 2.1.2 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow (PyPI) | 2.2.0 to before 2.2.1 | 2.2.1 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow (PyPI) | 2.3.0 to before 2.3.1 | 2.3.1 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-cpu (PyPI) | before 1.15.4 | 1.15.4 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-cpu (PyPI) | 2.0.0 to before 2.0.3 | 2.0.3 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-cpu (PyPI) | 2.1.0 to before 2.1.2 | 2.1.2 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-cpu (PyPI) | 2.2.0 to before 2.2.1 | 2.2.1 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-cpu (PyPI) | 2.3.0 to before 2.3.1 | 2.3.1 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-gpu (PyPI) | before 1.15.4 | 1.15.4 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-gpu (PyPI) | 2.0.0 to before 2.0.3 | 2.0.3 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-gpu (PyPI) | 2.1.0 to before 2.1.2 | 2.1.2 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-gpu (PyPI) | 2.2.0 to before 2.2.1 | 2.2.1 | Patch available | GHSA-q8gv-q7wr-9jf8 |
| — | tensorflow-gpu (PyPI) | 2.3.0 to before 2.3.1 | 2.3.1 | Patch available | GHSA-q8gv-q7wr-9jf8 |
- tensorflow VendorGoogle Affected before 1.15.4; 2.0.0 to before 2.0.3; 2.1.0 to before 2.1.2; 2.2.0 to before 2.2.1; 2.3.0 to before 2.3.1 Fixed in 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1 Patch available CNA
- tensorflow (PyPI) Vendor— Affected before 1.15.4 Fixed in 1.15.4 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow (PyPI) Vendor— Affected 2.0.0 to before 2.0.3 Fixed in 2.0.3 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow (PyPI) Vendor— Affected 2.1.0 to before 2.1.2 Fixed in 2.1.2 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow (PyPI) Vendor— Affected 2.2.0 to before 2.2.1 Fixed in 2.2.1 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow (PyPI) Vendor— Affected 2.3.0 to before 2.3.1 Fixed in 2.3.1 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-cpu (PyPI) Vendor— Affected before 1.15.4 Fixed in 1.15.4 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-cpu (PyPI) Vendor— Affected 2.0.0 to before 2.0.3 Fixed in 2.0.3 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-cpu (PyPI) Vendor— Affected 2.1.0 to before 2.1.2 Fixed in 2.1.2 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-cpu (PyPI) Vendor— Affected 2.2.0 to before 2.2.1 Fixed in 2.2.1 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-cpu (PyPI) Vendor— Affected 2.3.0 to before 2.3.1 Fixed in 2.3.1 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-gpu (PyPI) Vendor— Affected before 1.15.4 Fixed in 1.15.4 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-gpu (PyPI) Vendor— Affected 2.0.0 to before 2.0.3 Fixed in 2.0.3 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-gpu (PyPI) Vendor— Affected 2.1.0 to before 2.1.2 Fixed in 2.1.2 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-gpu (PyPI) Vendor— Affected 2.2.0 to before 2.2.1 Fixed in 2.2.1 Patch available GHSA-q8gv-q7wr-9jf8
- tensorflow-gpu (PyPI) Vendor— Affected 2.3.0 to before 2.3.1 Fixed in 2.3.1 Patch available GHSA-q8gv-q7wr-9jf8
Remediation
- Fix · CNA tensorflow (tensorflow) Fixed in 1.15.4, 2.0.3, 2.1.2, 2.2.1, 2.3.1
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow (PyPI) Fixed in 1.15.4 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow (PyPI) Fixed in 2.0.3 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow (PyPI) Fixed in 2.1.2 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow (PyPI) Fixed in 2.2.1 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow (PyPI) Fixed in 2.3.1 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-cpu (PyPI) Fixed in 1.15.4 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-cpu (PyPI) Fixed in 2.0.3 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-cpu (PyPI) Fixed in 2.1.2 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-cpu (PyPI) Fixed in 2.2.1 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-cpu (PyPI) Fixed in 2.3.1 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-gpu (PyPI) Fixed in 1.15.4 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-gpu (PyPI) Fixed in 2.0.3 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-gpu (PyPI) Fixed in 2.1.2 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-gpu (PyPI) Fixed in 2.2.1 Advisory →
- Fix · GHSA-q8gv-q7wr-9jf8 tensorflow-gpu (PyPI) Fixed in 2.3.1 Advisory →
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Advisory ·
tensorflow — openSUSE-SU-2020:1766
16 records Highest priority Priority MEDIUM 6 MEDIUM, 10 LOW
Other records, highest priority first
- TI-2020-11980 Data corruption in tensorflow-litePriority MEDIUM 44
- TI-2020-11977 Data leak in TensorflowPriority MEDIUM 44
- TI-2020-11979 Segfault and data corruption in tensorflow-litePriority MEDIUM 41
Timeline
- 2026-10-02 Threatist record created from CVE-2020-15204
- 2026-10-03 Alias added: GHSA-q8gv-q7wr-9jf8
References
Advisory 3
Other 4
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2020-284.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2020-319.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2020-127.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-15204 · CVE Program
- CVE-2020-15204 · NVD
- FIRST EPSS
- GHSA-q8gv-q7wr-9jf8 · 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