CVE-2022-41889: TensorFlow: NULL ptr deref DoS via quantized tensor input
HIGH PoC AVAILABLE CISA: TRACK*TensorFlow's legacy v1 API crashes when processing quantized tensor inputs in certain operations, enabling unauthenticated remote denial-of-service against inference endpoints. If your ML serving infrastructure exposes TensorFlow APIs that accept user-controlled inputs, treat this as urgent: patch to TF 2.11, 2.10.1, 2.9.3, or 2.8.4. No exploit code execution is possible, but inference service availability is at direct risk.
Risk Assessment
Medium-high for organizations with externally exposed TensorFlow inference APIs. CVSS 7.5 with no authentication or user interaction required makes this trivially weaponizable for DoS. The blast radius is limited to availability—no data exfiltration or code execution pathway exists. Risk is amplified in production ML serving environments where uptime SLAs apply. Not in CISA KEV and from 2022 reduces urgency for well-patched environments, but legacy TF deployments remain common in enterprise.
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 to TensorFlow 2.11, 2.10.1, 2.9.3, or 2.8.4 (commit e9e95553).
-
VALIDATE INPUTS
Add an input validation layer rejecting quantized tensor types (DT_QINT8, DT_QUINT8, DT_QINT16, etc.) before routing to volume patch operations.
-
ISOLATE
If patching is blocked, place inference endpoints behind an authenticated API gateway—reduce the no-auth attack surface.
-
DETECT
Monitor TF serving processes for unexpected crashes or SIGABRT signals; alert on pod restarts in Kubernetes TF deployments.
-
AUDIT
Inventory all TF versions in production via container image scanning; prioritize any service using tf.compat.v1 APIs.
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-41889?
TensorFlow's legacy v1 API crashes when processing quantized tensor inputs in certain operations, enabling unauthenticated remote denial-of-service against inference endpoints. If your ML serving infrastructure exposes TensorFlow APIs that accept user-controlled inputs, treat this as urgent: patch to TF 2.11, 2.10.1, 2.9.3, or 2.8.4. No exploit code execution is possible, but inference service availability is at direct risk.
Is CVE-2022-41889 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2022-41889, increasing the risk of exploitation.
How to fix CVE-2022-41889?
1. PATCH: Upgrade to TensorFlow 2.11, 2.10.1, 2.9.3, or 2.8.4 (commit e9e95553). 2. VALIDATE INPUTS: Add an input validation layer rejecting quantized tensor types (DT_QINT8, DT_QUINT8, DT_QINT16, etc.) before routing to volume patch operations. 3. ISOLATE: If patching is blocked, place inference endpoints behind an authenticated API gateway—reduce the no-auth attack surface. 4. DETECT: Monitor TF serving processes for unexpected crashes or SIGABRT signals; alert on pod restarts in Kubernetes TF deployments. 5. AUDIT: Inventory all TF versions in production via container image scanning; prioritize any service using tf.compat.v1 APIs.
What systems are affected by CVE-2022-41889?
This vulnerability affects the following AI/ML architecture patterns: model serving, inference endpoints, training pipelines, batch inference systems.
What is the CVSS score for CVE-2022-41889?
CVE-2022-41889 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.12%.
Technical Details
NVD Description
TensorFlow is an open source platform for machine learning. If a list of quantized tensors is assigned to an attribute, the pywrap code fails to parse the tensor and returns a `nullptr`, which is not caught. An example can be seen in `tf.compat.v1.extract_volume_patches` by passing in quantized tensors as input `ksizes`. We have patched the issue in GitHub commit e9e95553e5411834d215e6770c81a83a3d0866ce. The fix will be included in TensorFlow 2.11. We will also cherrypick this commit on TensorFlow 2.10.1, 2.9.3, and TensorFlow 2.8.4, as these are also affected and still in supported range.
Exploitation Scenario
An adversary identifies a public-facing TensorFlow Model Server or custom inference API endpoint. They craft an HTTP POST request with a quantized tensor (e.g., DT_QINT8) passed as the ksizes parameter to extract_volume_patches via the pywrap layer. TensorFlow's Python-C++ binding fails to parse the quantized type, returns a nullptr, and the uncaught null dereference crashes the serving process. On containerized deployments without restart policies, this takes the inference service offline. An attacker can automate this in a loop to maintain denial of service with minimal resources—no special AI/ML knowledge required, just knowledge of the TF API schema.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H References
- github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/image/generate_box_proposals_op.cu.cc 3rd Party
- github.com/tensorflow/tensorflow/commit/e9e95553e5411834d215e6770c81a83a3d0866ce Patch 3rd Party
- github.com/tensorflow/tensorflow/security/advisories/GHSA-xxcj-rhqg-m46g Exploit Patch 3rd Party
- github.com/ARPSyndicate/cvemon 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