CVE-2023-25661: TensorFlow: DoS via malformed Convolution3D input
MEDIUM PoC AVAILABLE CISA: TRACK*Any TensorFlow-based model service exposing Convolution3DTranspose to external input is vulnerable to crash-based denial of service with a low-privileged API call. Upgrade to TensorFlow 2.11.1 immediately and audit all inference endpoints that accept tensor inputs from untrusted sources. This is particularly urgent for computer vision and video processing services deployed as cloud APIs.
What is the risk?
Rated medium by CVSS (6.5), but operational risk is higher in AI-as-a-Service deployments. Attack complexity is low (crafting a malformed tensor shape), requires only low privileges (standard API access), and is network-exploitable with no user interaction. No confidentiality or integrity impact, but availability impact is high — a single malformed request crashes the model server. Not in CISA KEV and no known active exploitation, but the PoC is public and the technique is trivially reproducible.
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| TensorFlow | pip | — | No patch |
Do you use TensorFlow? You're affected.
How severe is it?
What is the attack surface?
What should I do?
5 steps-
Patch: Upgrade TensorFlow to >= 2.11.1 on all inference nodes, training servers, and CI/CD pipelines.
-
Input validation: Add shape and dtype validation before passing tensors to Convolution3DTranspose — reject inputs with invalid spatial dimensions or negative strides.
-
Isolation: Run inference processes in containers with restart policies (e.g., Kubernetes liveness probes) to auto-recover from crashes and limit DoS duration.
-
Rate limiting: Apply per-client rate limits on inference API endpoints to raise the cost of sustained DoS.
-
Detection: Monitor for Check Failed / SIGABRT crash logs in TensorFlow serving logs; repeated crashes from the same source IP indicate active exploitation.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2023-25661?
Any TensorFlow-based model service exposing Convolution3DTranspose to external input is vulnerable to crash-based denial of service with a low-privileged API call. Upgrade to TensorFlow 2.11.1 immediately and audit all inference endpoints that accept tensor inputs from untrusted sources. This is particularly urgent for computer vision and video processing services deployed as cloud APIs.
Is CVE-2023-25661 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2023-25661, increasing the risk of exploitation.
How to fix CVE-2023-25661?
1. Patch: Upgrade TensorFlow to >= 2.11.1 on all inference nodes, training servers, and CI/CD pipelines. 2. Input validation: Add shape and dtype validation before passing tensors to Convolution3DTranspose — reject inputs with invalid spatial dimensions or negative strides. 3. Isolation: Run inference processes in containers with restart policies (e.g., Kubernetes liveness probes) to auto-recover from crashes and limit DoS duration. 4. Rate limiting: Apply per-client rate limits on inference API endpoints to raise the cost of sustained DoS. 5. Detection: Monitor for Check Failed / SIGABRT crash logs in TensorFlow serving logs; repeated crashes from the same source IP indicate active exploitation.
What systems are affected by CVE-2023-25661?
This vulnerability affects the following AI/ML architecture patterns: model serving, inference APIs, training pipelines, computer vision deployments.
What is the CVSS score for CVE-2023-25661?
CVE-2023-25661 has a CVSS v3.1 base score of 6.5 (MEDIUM). The EPSS exploitation probability is 0.43%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029 Denial of AI Service AML.T0034 Cost Harvesting AML.T0049 Exploit Public-Facing Application Compliance Controls Affected
What are the technical details?
Original Advisory
TensorFlow is an Open Source Machine Learning Framework. In versions prior to 2.11.1 a malicious invalid input crashes a tensorflow model (Check Failed) and can be used to trigger a denial of service attack. A proof of concept can be constructed with the `Convolution3DTranspose` function. This Convolution3DTranspose layer is a very common API in modern neural networks. The ML models containing such vulnerable components could be deployed in ML applications or as cloud services. This failure could be potentially used to trigger a denial of service attack on ML cloud services. An attacker must have privilege to provide input to a `Convolution3DTranspose` call. This issue has been patched and users are advised to upgrade to version 2.11.1. There are no known workarounds for this vulnerability.
Exploitation Scenario
An attacker with a legitimate (low-privilege) account on a TensorFlow Serving API — or a shared ML platform like Vertex AI, SageMaker, or an internal model hub — identifies a model that uses Convolution3DTranspose (discoverable via model card, API docs, or by probing output shapes). The attacker submits a single HTTP request with a crafted tensor of invalid spatial dimensions (e.g., zero or negative filter sizes). TensorFlow's internal Check assertion fails, the serving process crashes (SIGABRT), and the API goes offline. With no auto-restart, the service remains down until manually restarted — a low-effort, high-impact DoS against ML infrastructure.
Weaknesses (CWE)
CWE-20 — Improper Input Validation: The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.
- [Architecture and Design] Consider using language-theoretic security (LangSec) techniques that characterize inputs using a formal language and build "recognizers" for that language. This effectively requires parsing to be a distinct layer that effectively enforces a boundary between raw input and internal data representations, instead of allowing parser code to be scattered throughout the program, where it could be subject to errors or inconsistencies that create weaknesses. [REF-1109] [REF-1110] [REF-1111]
- [Architecture and Design] Use an input validation framework such as Struts or the OWASP ESAPI Validation API. Note that using a framework does not automatically address all input validation problems; be mindful of weaknesses that could arise from misusing the framework itself (CWE-1173).
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H References
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