CVE-2019-16778
Heap buffer overflow in `UnsortedSegmentSum` in TensorFlow
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
2.6
Heap buffer overflow in `UnsortedSegmentSum` in TensorFlow
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
CVE-2019-16778- CVSS 3.1
- 2.6 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L - Weakness
- CWE-122
- Updated
- 2026-11-02
EUVDEUVD-2019-0142
2.6
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
EUVD-2019-0142- CVSS 3.1
- 2.6 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-844w-j86r-4x2j
2.1
Heap buffer overflow in `UnsortedSegmentSum` in TensorFlow
Impact
A heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory.
This is unlikely to be exploitable and was detected and fixed internally. We are making the security advisory only to notify users that it is better to update to TensorFlow 1.15 or 2.0 or later as these versions already have this fixed.
Patches
Patched by db4f9717c41bccc3ce10099ab61996b246099892 and released in all official releases after 1.15 and 2.0.
For more information
Please consult SECURITY.md for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-844w-j86r-4x2j- CVSS 4.0
- 2.1 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N - CVSS 3.1
- 2.6 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L - Weakness
- CWE-122, CWE-681
- Updated
- 2026-11-02
NVD
2.6
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
CVE-2019-16778- CVSS 3.1
- 2.6 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-122, CWE-681
- Updated
- 2026-11-02
OSV
9.8
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
CVE-2019-16778- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-844w-j86r-4x2j
2.1
Heap buffer overflow in `UnsortedSegmentSum` in TensorFlow
Impact
A heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory.
This is unlikely to be exploitable and was detected and fixed internally. We are making the security advisory only to notify users that it is better to update to TensorFlow 1.15 or 2.0 or later as these versions already have this fixed.
Patches
Patched by db4f9717c41bccc3ce10099ab61996b246099892 and released in all official releases after 1.15 and 2.0.
For more information
Please consult SECURITY.md for more information regarding the security model and how to contact us with issues and questions.
- Record
GHSA-844w-j86r-4x2j- CVSS 4.0
- 2.1 Low
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N - CVSS 3.1
- 2.6 Low
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:L - Weakness
- CWE-122, CWE-681
- Updated
- 2026-11-02
OSVPYSEC-2019-209 No score
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
PYSEC-2019-209- Updated
- 2026-11-02
OSVPYSEC-2019-227 No score
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
PYSEC-2019-227- Updated
- 2026-11-02
OSVPYSEC-2019-234 No score
In TensorFlow before 1.15, a heap buffer overflow in UnsortedSegmentSum can be produced when the Index template argument is int32. In this case data_size and num_segments fields are truncated from int64 to int32 and can produce negative numbers, resulting in accessing out of bounds heap memory. This is unlikely to be exploitable and was detected and fixed internally in TensorFlow 1.15 and 2.0.
- Record
PYSEC-2019-234- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
tensorflowPyPI |
before 1.15.0 | 1.15.0 |
tensorflow-cpuPyPI |
before 1.15.0 | 1.15.0 |
tensorflow-gpuPyPI |
before 1.15.0 | 1.15.0 |
tensorflowPyPI |
before 1.15.0, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 21 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.0 |
1.15.0 |
tensorflow-gpuPyPI |
before 1.15.0, plus listed versions 0.12.00.12.11.0.01.0.11.1.0 Show 21 moreShow less1.10.01.10.11.11.01.12.01.12.21.12.31.13.11.13.21.14.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.0 |
1.15.0 |
tensorflowPyPI |
1.0.0 up to 1.15.0, plus listed versions 1.0.11.1.01.1.0rc01.1.0rc11.1.0rc2 Show 45 moreShow less1.10.01.10.0rc01.10.0rc11.10.11.11.01.11.0rc01.11.0rc11.11.0rc21.12.01.12.0rc01.12.0rc11.12.0rc21.12.21.12.31.13.0rc01.13.0rc11.13.0rc21.13.11.13.21.14.01.14.0rc01.14.0rc11.15.0rc01.15.0rc11.15.0rc21.15.0rc31.2.01.2.0rc01.2.0rc11.2.0rc21.2.11.3.01.3.0rc01.3.0rc11.3.0rc21.4.01.4.0rc01.4.0rc11.4.11.5.01.5.0rc01.5.0rc11.5.11.6.01.6.0rc0 |
1.15.0 |
tensorflow-cpuPyPI |
1.0.0 up to 1.15.0 | 1.15.0 |
tensorflow-gpuPyPI |
1.0.0 up to 1.15.0, plus listed versions 1.0.11.1.01.10.01.10.11.11.0 Show 18 moreShow less1.12.01.12.21.12.31.13.11.13.21.14.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.6.01.7.01.7.11.8.01.9.0 |
1.15.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2019-16778 is a low vulnerability (CVSS 2.6) in Google Tensorflow, published December 16, 2019. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.79%, the 56th percentile. Fixed in tensorflow 1.15.0.
References
github.com/tensorflow/tensorflow/security/advisories/GHSA-844w-j86r-4x2j
github.com/tensorflow/tensorflow/commit/db4f9717c41bccc3ce10099ab61996b246099892
github.com/tensorflow/tensorflow/blob/master/tensorflow/security/advisory/tfsa-2019-002.md
nvd.nist.gov/vuln/detail/CVE-2019-16778
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2019-227.yaml
github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2019-234.yaml
github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2019-209.yaml
github.com/advisories/GHSA-844w-j86r-4x2j
github.com/tensorflow/tensorflow
Left out here: 12 versions. The JSON record has them.