CVE-2022-29209: TensorFlow: CHECK macro type confusion causes DoS
MEDIUM PoC AVAILABLE CISA: TRACK*A type confusion bug in TensorFlow's internal assertion macros allows local, low-privileged users to crash TensorFlow processes. Patch to TF 2.9.0/2.8.1/2.7.2/2.6.4 immediately — no workaround exists. Risk is strictly availability; no data exfiltration or remote code execution vector is known.
Risk Assessment
Medium risk in typical enterprise deployments. Local access with low privileges is required, limiting remote exploitation. In multi-tenant ML platforms, shared Jupyter environments, or CI/CD pipelines where multiple users submit TensorFlow jobs, a malicious or compromised insider could deliberately crash training jobs or inference servers. Cloud ML environments (SageMaker, Vertex AI) where external users submit jobs represent the highest exposure surface.
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-
Upgrade TensorFlow to 2.9.0, 2.8.1, 2.7.2, or 2.6.4 across all environments.
-
Audit dev, CI/CD, and production systems via 'pip show tensorflow' or container image scans.
-
In multi-tenant ML clusters, restrict job submission privileges until patched.
-
Monitor for unexpected TF process crashes or training job aborts as an exploitation indicator.
-
In containerized deployments, rebuild and redeploy images with patched TF base layers.
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-29209?
A type confusion bug in TensorFlow's internal assertion macros allows local, low-privileged users to crash TensorFlow processes. Patch to TF 2.9.0/2.8.1/2.7.2/2.6.4 immediately — no workaround exists. Risk is strictly availability; no data exfiltration or remote code execution vector is known.
Is CVE-2022-29209 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2022-29209, increasing the risk of exploitation.
How to fix CVE-2022-29209?
1. Upgrade TensorFlow to 2.9.0, 2.8.1, 2.7.2, or 2.6.4 across all environments. 2. Audit dev, CI/CD, and production systems via 'pip show tensorflow' or container image scans. 3. In multi-tenant ML clusters, restrict job submission privileges until patched. 4. Monitor for unexpected TF process crashes or training job aborts as an exploitation indicator. 5. In containerized deployments, rebuild and redeploy images with patched TF base layers.
What systems are affected by CVE-2022-29209?
This vulnerability affects the following AI/ML architecture patterns: training pipelines, model serving, notebook environments, CI/CD ML pipelines.
What is the CVSS score for CVE-2022-29209?
CVE-2022-29209 has a CVSS v3.1 base score of 5.5 (MEDIUM). The EPSS exploitation probability is 0.09%.
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 macros that TensorFlow uses for writing assertions (e.g., `CHECK_LT`, `CHECK_GT`, etc.) have an incorrect logic when comparing `size_t` and `int` values. Due to type conversion rules, several of the macros would trigger incorrectly. Versions 2.9.0, 2.8.1, 2.7.2, and 2.6.4 contain a patch for this issue.
Exploitation Scenario
An insider or compromised ML engineer with local access to a shared training cluster submits a TensorFlow job crafted to trigger the size_t/int comparison bug in a CHECK macro. The assertion misfires, aborting the TF process mid-training. In a shared GPU cluster, repeated exploitation terminates concurrent training runs, causing compute loss and availability disruption to dependent AI services. In a TF Serving deployment, crafted inference inputs that hit the buggy code path take down the serving process, denying service to downstream applications.
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/platform/default/logging.h 3rd Party
- github.com/tensorflow/tensorflow/commit/b917181c29b50cb83399ba41f4d938dc369109a1 Patch 3rd Party
- github.com/tensorflow/tensorflow/issues/55530 Exploit Issue 3rd Party
- github.com/tensorflow/tensorflow/pull/55730 Exploit Issue 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-f4rr-5m7v-wxcw Exploit Patch 3rd Party
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