CVE-2020-15192: TensorFlow: memory leak in dlpack DoS via low-priv input
MEDIUM PoC AVAILABLEThis is a low-urgency, patched memory leak in TensorFlow's DLPack interface that allows authenticated users to slowly exhaust memory in serving or training environments. Upgrade to TensorFlow 2.2.1+ or 2.3.1+ immediately if still on affected versions — given this is a 2020 CVE, any unpatched instance is a significant hygiene failure. No active exploitation evidence; primary risk is availability degradation in multi-tenant inference endpoints.
Risk Assessment
Low-to-moderate operational risk. CVSS 4.3 reflects realistic impact accurately: network-accessible, low-privilege required, no confidentiality or integrity impact, only availability. In single-tenant environments the blast radius is limited to self-inflicted DoS. In multi-tenant model serving platforms (e.g., shared GPU clusters, SageMaker-like endpoints) the risk increases as a low-privileged user could degrade service for all tenants. Not in CISA KEV and no public exploitation reported. The 5+ year age of this CVE means any exposure now is an unacceptable patch hygiene failure.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| tensorflow | pip | — | No patch |
| leap | — | — | No patch |
Severity & Risk
Attack Surface
Recommended Action
5 steps-
PATCH
Upgrade TensorFlow to 2.2.1 or 2.3.1 (or any later version). This is the only fix — no workaround short of disabling DLPack.
-
DETECT
Monitor TensorFlow process RSS memory for anomalous growth; alert on OOM kills in inference containers.
-
ISOLATE
If immediate patching is not possible, restrict network access to TensorFlow serving endpoints to authenticated internal users only; enforce strict input validation at the API gateway layer to reject non-tensor payloads.
-
AUDIT
Scan your ML dependency inventory for TensorFlow < 2.2.1 or < 2.3.1 — use 'pip show tensorflow' or lock-file audit.
-
OPENSSL patch check: Verify the openSUSE Leap advisory (SUSE-SU-2020:3165) if running on SLES/openSUSE.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2020-15192?
This is a low-urgency, patched memory leak in TensorFlow's DLPack interface that allows authenticated users to slowly exhaust memory in serving or training environments. Upgrade to TensorFlow 2.2.1+ or 2.3.1+ immediately if still on affected versions — given this is a 2020 CVE, any unpatched instance is a significant hygiene failure. No active exploitation evidence; primary risk is availability degradation in multi-tenant inference endpoints.
Is CVE-2020-15192 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2020-15192, increasing the risk of exploitation.
How to fix CVE-2020-15192?
1. PATCH: Upgrade TensorFlow to 2.2.1 or 2.3.1 (or any later version). This is the only fix — no workaround short of disabling DLPack. 2. DETECT: Monitor TensorFlow process RSS memory for anomalous growth; alert on OOM kills in inference containers. 3. ISOLATE: If immediate patching is not possible, restrict network access to TensorFlow serving endpoints to authenticated internal users only; enforce strict input validation at the API gateway layer to reject non-tensor payloads. 4. AUDIT: Scan your ML dependency inventory for TensorFlow < 2.2.1 or < 2.3.1 — use 'pip show tensorflow' or lock-file audit. 5. OPENSSL patch check: Verify the openSUSE Leap advisory (SUSE-SU-2020:3165) if running on SLES/openSUSE.
What systems are affected by CVE-2020-15192?
This vulnerability affects the following AI/ML architecture patterns: model serving, training pipelines, multi-framework inference.
What is the CVSS score for CVE-2020-15192?
CVE-2020-15192 has a CVSS v3.1 base score of 4.3 (MEDIUM). The EPSS exploitation probability is 0.23%.
Technical Details
NVD Description
In Tensorflow before versions 2.2.1 and 2.3.1, if a user passes a list of strings to `dlpack.to_dlpack` there is a memory leak following an expected validation failure. The issue occurs because the `status` argument during validation failures is not properly checked. Since each of the above methods can return an error status, the `status` value must be checked before continuing. The issue is patched in commit 22e07fb204386768e5bcbea563641ea11f96ceb8 and is released in TensorFlow versions 2.2.1, or 2.3.1.
Exploitation Scenario
An adversary with low-privilege API access to a TensorFlow Serving endpoint — such as a data scientist account or a compromised ML pipeline service account — crafts repeated inference requests passing a Python list of strings to dlpack.to_dlpack. Each request triggers a validation failure but leaks memory before cleanup. By automating this at moderate request rate (e.g., 10-50 req/s), the adversary slowly exhausts the serving container's memory over minutes-to-hours, ultimately causing an OOM crash. In a Kubernetes-hosted inference deployment, this restarts the pod and causes transient service unavailability. In a training cluster with shared GPU memory via DLPack, a malicious insider could disrupt a competitor's training run.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L References
- lists.opensuse.org/opensuse-security-announce/2020-10/msg00065.html Mailing List 3rd Party
- github.com/tensorflow/tensorflow/commit/22e07fb204386768e5bcbea563641ea11f96ceb8 Patch 3rd Party
- github.com/tensorflow/tensorflow/releases/tag/v2.3.1 3rd Party
- github.com/tensorflow/tensorflow/security/advisories/GHSA-8fxw-76px-3rxv Exploit 3rd Party
- github.com/graphene-security/graphene-sample-data Exploit
Timeline
Related Vulnerabilities
CVE-2020-15196 9.9 TensorFlow: heap OOB read in sparse/ragged count ops
Same package: tensorflow CVE-2020-15205 9.8 TensorFlow: heap overflow in StringNGrams, ASLR bypass
Same package: tensorflow CVE-2020-15208 9.8 TFLite: OOB read/write via tensor dimension mismatch
Same package: tensorflow CVE-2019-16778 9.8 TensorFlow: heap overflow in UnsortedSegmentSum op
Same package: tensorflow CVE-2022-23587 9.8 TensorFlow: integer overflow in Grappler enables RCE
Same package: tensorflow
AI Threat Alert