CVE-2020-15199: TensorFlow GPU - Invalid Ragged Tensor Validation
Summary
CVE-2020-15199: In Tensorflow before version 2.3.1, the RaggedCountSparseOutput does not validate that the input arguments form a valid ragged tensor. Affects tensorflow-gpu across 2 version ranges.
< 2.3.1
< 3cbb917b4714766030b28eba9fb41bb97ce9ee02
Fixed in 3cbb917b4714766030b28eba9fb41bb97ce9ee02. How to fix ↓
Also tracked for
- tensorflow · Bitnami
- tensorflow · PyPI
- tensorflow-cpu · PyPI
- tensorflow · PyPI
The same CVE-2020-15199 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
TensorFlow is an open-source machine learning framework that provides a comprehensive ecosystem of tools, libraries, and community resources. It is widely used for developing and deploying machine learning models. The TensorFlow GPU package, available on PyPI, is a variant of TensorFlow that leverages GPU acceleration for faster computation. This vulnerability affects versions of TensorFlow GPU prior to 2.3.1.
Vulnerability Detail
The vulnerability (CVE-2020-15199) in TensorFlow GPU arises from the lack of validation in the RaggedCountSparseOutput function. This function fails to verify if the input arguments form a valid ragged tensor, specifically the splits tensor. The splits tensor must have a minimum number of elements to initialize the BatchedMap data structure correctly. However, if the splits tensor is empty or has only one element, a SIGABRT signal is raised by the operating system, leading to a crash. This vulnerability can be exploited by an attacker to cause a denial-of-service (DoS) condition in applications that utilize TensorFlow GPU.
How To Fix
Latest published version: 2.12.0 as of 22 Oct 2026
pip install --upgrade "tensorflow-gpu==2.12.0"
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
3cbb917b4714766030b28eba9fb41bb97ce9ee02
This is the first release that contains the fix.
pip install --upgrade "tensorflow-gpu==3cbb917b4714766030b28eba9fb41bb97ce9ee02"
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
There is no specific workaround provided for this vulnerability. However, users can mitigate the risk by ensuring that the splits tensor passed to the RaggedCountSparseOutput function has the required minimum number of elements. This can be done by validating the input data before passing it to the vulnerable function.
Conclusion
The vulnerability (CVE-2020-15199) in TensorFlow GPU arises from the lack of validation in the RaggedCountSparseOutput function. It can lead to a denial-of-service (DoS) condition in applications that use TensorFlow GPU. To mitigate the risk, it is recommended to update TensorFlow GPU to version 2.3.1 or later. Users can also validate the splits tensor to minimize the risk. For further support on vulnerability remediation, you can reach out to DevNack.com.
See every vulnerability recorded for tensorflow-gpu →
FAQ
TensorFlow GPU is a variant of TensorFlow that utilizes GPU acceleration for faster computation. It is commonly used in machine learning applications that require high-performance computing.
This vulnerability can lead to a denial-of-service (DoS) condition in applications that use TensorFlow GPU. An attacker can exploit the vulnerability to crash the application by providing an invalid splits tensor.
You can use the Vulert Playground (https://vulert.com/scanner) to check if your application is affected by this vulnerability. Simply upload your Pipfile.lock file, and Vulert will analyze it for any open-source vulnerabilities, including this one.
Yes, the vulnerability has been fixed in TensorFlow GPU version 2.3.1. It is recommended to update your TensorFlow GPU installation to this version or later to mitigate the risk.
While there is no specific workaround provided, users can minimize the risk by validating the splits tensor before passing it to the vulnerable function. This can help ensure that the tensor has the required minimum number of elements.
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow-gpu.