CVE-2022-29193: TensorFlow: DoS via TensorSummaryV2 input validation failure
MEDIUM PoC AVAILABLE CISA: TRACK*A low-privilege local user can crash TensorFlow processes by passing invalid arguments to tf.raw_ops.TensorSummaryV2, triggering a CHECK-failure. Patch to TF 2.9.0, 2.8.1, 2.7.2, or 2.6.4 immediately — multi-tenant ML environments (shared Jupyter clusters, CI/CD training pipelines) are the primary risk surface. Impact is availability only; no data exfiltration or code execution.
Risk Assessment
Effective risk is LOW-MEDIUM despite CVSS 5.5. The local attack vector significantly limits exposure — an attacker needs an authenticated session on the host running TensorFlow. In dedicated single-user workstations the risk is negligible. In shared ML platforms (JupyterHub, Kubeflow, SageMaker Studio multi-tenant), a malicious or compromised tenant could disrupt co-located training jobs. The vulnerability requires no AI/ML expertise and is trivially exploitable once local access is obtained. Not in CISA KEV; no evidence of in-the-wild exploitation.
Affected Systems
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| tensorflow | pip | — | No patch |
Do you use tensorflow? You're affected.
Severity & Risk
Attack Surface
Recommended Action
5 steps-
PATCH
Upgrade TensorFlow to 2.9.0, 2.8.1, 2.7.2, or 2.6.4. Verify with
pip show tensorflow. -
WORKAROUND
Audit code for direct calls to tf.raw_ops.TensorSummaryV2 and validate tensor_dtype and metadata arguments before invocation.
-
MULTI-TENANT HARDENING: Enforce namespace/pod isolation in Kubeflow/JupyterHub to prevent cross-tenant disruption. Apply resource quotas to limit blast radius.
-
DETECTION
Monitor for unexpected TensorFlow process crashes (exit code 134 / SIGABRT) in training infrastructure logs. Alert on repeated abort signals from the same user session.
-
INVENTORY
Identify all ML training pipelines using TensorFlow < 2.6.4 via SBOM or dependency scanning (pip-audit, Safety).
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-2022-29193?
A low-privilege local user can crash TensorFlow processes by passing invalid arguments to tf.raw_ops.TensorSummaryV2, triggering a CHECK-failure. Patch to TF 2.9.0, 2.8.1, 2.7.2, or 2.6.4 immediately — multi-tenant ML environments (shared Jupyter clusters, CI/CD training pipelines) are the primary risk surface. Impact is availability only; no data exfiltration or code execution.
Is CVE-2022-29193 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2022-29193, increasing the risk of exploitation.
How to fix CVE-2022-29193?
1. PATCH: Upgrade TensorFlow to 2.9.0, 2.8.1, 2.7.2, or 2.6.4. Verify with `pip show tensorflow`. 2. WORKAROUND: Audit code for direct calls to tf.raw_ops.TensorSummaryV2 and validate tensor_dtype and metadata arguments before invocation. 3. MULTI-TENANT HARDENING: Enforce namespace/pod isolation in Kubeflow/JupyterHub to prevent cross-tenant disruption. Apply resource quotas to limit blast radius. 4. DETECTION: Monitor for unexpected TensorFlow process crashes (exit code 134 / SIGABRT) in training infrastructure logs. Alert on repeated abort signals from the same user session. 5. INVENTORY: Identify all ML training pipelines using TensorFlow < 2.6.4 via SBOM or dependency scanning (pip-audit, Safety).
What systems are affected by CVE-2022-29193?
This vulnerability affects the following AI/ML architecture patterns: training pipelines, experiment tracking systems, model monitoring, multi-tenant ML platforms.
What is the CVSS score for CVE-2022-29193?
CVE-2022-29193 has a CVSS v3.1 base score of 5.5 (MEDIUM). The EPSS exploitation probability is 0.05%.
Technical Details
NVD Description
TensorFlow is an open source platform for machine learning. Prior to versions 2.9.0, 2.8.1, 2.7.2, and 2.6.4, the implementation of `tf.raw_ops.TensorSummaryV2` does not fully validate the input arguments. This results in a `CHECK`-failure which can be used to trigger a denial of service attack. Versions 2.9.0, 2.8.1, 2.7.2, and 2.6.4 contain a patch for this issue.
Exploitation Scenario
An insider threat or compromised data-scientist account with shell access to a shared ML training cluster imports TensorFlow and calls tf.raw_ops.TensorSummaryV2 with a malformed metadata argument (e.g., an empty or mismatched dtype). TensorFlow's CHECK macro fires, raising SIGABRT and killing the process. On a Kubernetes-based ML platform without proper pod isolation, this can be repeated in a loop to continuously abort legitimate training jobs belonging to other tenants, effectively conducting a targeted denial-of-service against specific model development efforts — without any elevated privileges.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H References
- github.com/tensorflow/tensorflow/blob/f3b9bf4c3c0597563b289c0512e98d4ce81f886e/tensorflow/core/kernels/summary_tensor_op.cc Patch 3rd Party
- github.com/tensorflow/tensorflow/commit/290bb05c80c327ed74fae1d089f1001b1e2a4ef7 Patch 3rd Party
- github.com/tensorflow/tensorflow/releases/tag/v2.6.4 Release 3rd Party
- github.com/tensorflow/tensorflow/releases/tag/v2.7.2 Release 3rd Party
- github.com/tensorflow/tensorflow/releases/tag/v2.8.1 Release 3rd Party
- github.com/tensorflow/tensorflow/releases/tag/v2.9.0 Release 3rd Party
- github.com/tensorflow/tensorflow/security/advisories/GHSA-2p9q-h29j-3f5v Exploit Patch 3rd Party
- github.com/ARPSyndicate/cvemon Exploit
- github.com/gclonly/im Exploit
- github.com/skipfuzz/skipfuzz 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