CVE-2023-25660: TensorFlow: null ptr deref in Print op allows remote DoS
HIGHAny TensorFlow deployment exposing model inference endpoints is at risk of remote crash with zero authentication required. An attacker can trigger a segfault by crafting input that reaches `tf.raw_ops.Print` with `summarize=0`, taking down your serving infrastructure. Patch immediately to TensorFlow 2.12.0 or 2.11.1 — no workaround replaces the fix.
Risk Assessment
High risk for production ML serving environments. The CVSS vector (AV:N/AC:L/PR:N/UI:N) means this is trivially exploitable over the network with no credentials. While impact is limited to availability (no data exfiltration), crashing a production inference endpoint can have serious operational consequences for AI-dependent products and services. Risk is elevated for organizations with externally exposed TensorFlow serving APIs and reduced for purely internal training workloads.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| tensorflow | pip | — | No patch |
Do you use tensorflow? You're affected.
Severity & Risk
Attack Surface
Recommended Action
6 steps-
Patch
Upgrade to TensorFlow >= 2.12.0 or >= 2.11.1 immediately.
-
Audit
Scan model graphs for embedded
tf.raw_ops.Printoperations before deploying to production using SavedModel inspection tools. -
Input validation
At inference API boundaries, validate and sanitize integer parameters before they reach TF ops.
-
Detection
Monitor for abnormal process crashes or segfaults in TensorFlow serving processes — these may indicate exploitation attempts.
-
Isolation
Run TensorFlow inference in containerized environments with restart policies to limit DoS impact window.
-
Deprecate debug ops
Remove
Printops from production model graphs — they serve no runtime purpose and expand attack surface.
CISA SSVC Assessment
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2023-25660?
Any TensorFlow deployment exposing model inference endpoints is at risk of remote crash with zero authentication required. An attacker can trigger a segfault by crafting input that reaches `tf.raw_ops.Print` with `summarize=0`, taking down your serving infrastructure. Patch immediately to TensorFlow 2.12.0 or 2.11.1 — no workaround replaces the fix.
Is CVE-2023-25660 actively exploited?
No confirmed active exploitation of CVE-2023-25660 has been reported, but organizations should still patch proactively.
How to fix CVE-2023-25660?
1. **Patch**: Upgrade to TensorFlow >= 2.12.0 or >= 2.11.1 immediately. 2. **Audit**: Scan model graphs for embedded `tf.raw_ops.Print` operations before deploying to production using SavedModel inspection tools. 3. **Input validation**: At inference API boundaries, validate and sanitize integer parameters before they reach TF ops. 4. **Detection**: Monitor for abnormal process crashes or segfaults in TensorFlow serving processes — these may indicate exploitation attempts. 5. **Isolation**: Run TensorFlow inference in containerized environments with restart policies to limit DoS impact window. 6. **Deprecate debug ops**: Remove `Print` ops from production model graphs — they serve no runtime purpose and expand attack surface.
What systems are affected by CVE-2023-25660?
This vulnerability affects the following AI/ML architecture patterns: model serving, training pipelines, inference endpoints, ML model deployment.
What is the CVSS score for CVE-2023-25660?
CVE-2023-25660 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.24%.
Technical Details
NVD Description
TensorFlow is an open source platform for machine learning. Prior to versions 2.12.0 and 2.11.1, when the parameter `summarize` of `tf.raw_ops.Print` is zero, the new method `SummarizeArray<bool>` will reference to a nullptr, leading to a seg fault. A fix is included in TensorFlow version 2.12 and version 2.11.1.
Exploitation Scenario
An adversary identifies a public-facing TensorFlow Serving endpoint hosting a model that includes `tf.raw_ops.Print` with a user-influenced `summarize` parameter (common in debug-enabled exports). The attacker sends a crafted inference request with `summarize=0`, which triggers `SummarizeArray<bool>` to dereference a null pointer, causing an immediate segfault and crashing the serving process. In a Kubernetes deployment without proper liveness probes, this can result in extended downtime. The attack requires no authentication, no ML knowledge, and can be automated to repeatedly crash restarted instances, achieving sustained denial of service against AI-dependent applications.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/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
AI Threat Alert