CVE-2022-36026: TensorFlow: DoS via QuantizeAndDequantizeV3 CHECK fail
HIGH PoC AVAILABLEAny TensorFlow model serving endpoint that processes quantization ops is crashable by an unauthenticated remote attacker with a single malformed request. Patch to TF 2.10.0, 2.9.1, 2.8.1, or 2.7.2 immediately — no workaround exists. If patching is delayed, isolate inference endpoints behind authenticated proxies to reduce exposure.
Risk Assessment
High availability risk for exposed TF serving infrastructure. CVSS 7.5 reflects unauthenticated network exploitability with zero interaction required — exploitation is trivial and scriptable. Real-world risk is moderated by the fact that most production deployments don't directly expose raw TF ops to untrusted callers, but MLOps pipelines and internal research infrastructure often lack this boundary. Not actively exploited (not in KEV), but the low barrier to exploitation means any unpatched internet-facing TF endpoint is a credible DoS target.
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 immediately
Upgrade to TensorFlow 2.10.0, 2.9.1, 2.8.1, or 2.7.2. Commit f3f9cb38ecfe5a8a703f2c4a8fead434ef291713 contains the fix.
-
Input validation
Add shape checks for
num_bitstensors before passing to quantization ops — assert scalar shape. -
Network isolation
Place TF Serving endpoints behind authenticated API gateways; never expose raw gRPC/REST TF endpoints directly to the internet.
-
Detection
Monitor for abnormal TF process crashes or pod restart loops in serving infrastructure — correlate with incoming request logs to identify exploitation attempts.
-
Inventory
Identify which models in production use QuantizeAndDequantizeV3 via
saved_model_cli showto prioritize patching.
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-36026?
Any TensorFlow model serving endpoint that processes quantization ops is crashable by an unauthenticated remote attacker with a single malformed request. Patch to TF 2.10.0, 2.9.1, 2.8.1, or 2.7.2 immediately — no workaround exists. If patching is delayed, isolate inference endpoints behind authenticated proxies to reduce exposure.
Is CVE-2022-36026 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2022-36026, increasing the risk of exploitation.
How to fix CVE-2022-36026?
1. **Patch immediately**: Upgrade to TensorFlow 2.10.0, 2.9.1, 2.8.1, or 2.7.2. Commit f3f9cb38ecfe5a8a703f2c4a8fead434ef291713 contains the fix. 2. **Input validation**: Add shape checks for `num_bits` tensors before passing to quantization ops — assert scalar shape. 3. **Network isolation**: Place TF Serving endpoints behind authenticated API gateways; never expose raw gRPC/REST TF endpoints directly to the internet. 4. **Detection**: Monitor for abnormal TF process crashes or pod restart loops in serving infrastructure — correlate with incoming request logs to identify exploitation attempts. 5. **Inventory**: Identify which models in production use QuantizeAndDequantizeV3 via `saved_model_cli show` to prioritize patching.
What systems are affected by CVE-2022-36026?
This vulnerability affects the following AI/ML architecture patterns: model serving, inference pipelines, training pipelines, edge/mobile model optimization.
What is the CVSS score for CVE-2022-36026?
CVE-2022-36026 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.06%.
Technical Details
NVD Description
TensorFlow is an open source platform for machine learning. If `QuantizeAndDequantizeV3` is given a nonscalar `num_bits` input tensor, it results in a `CHECK` fail that can be used to trigger a denial of service attack. We have patched the issue in GitHub commit f3f9cb38ecfe5a8a703f2c4a8fead434ef291713. The fix will be included in TensorFlow 2.10.0. We will also cherrypick this commit on TensorFlow 2.9.1, TensorFlow 2.8.1, and TensorFlow 2.7.2, as these are also affected and still in supported range. There are no known workarounds for this issue.
Exploitation Scenario
An attacker identifies a TensorFlow Serving endpoint (e.g., via Shodan scanning port 8501/8500) or gains access to an internal MLOps API. They craft a gRPC or REST inference request that passes a rank-1 or rank-2 tensor as the `num_bits` argument to a model that internally calls QuantizeAndDequantizeV3. The CHECK assertion fires, the TF serving process crashes instantly. In a Kubernetes deployment, the pod restarts within seconds, but the attacker can loop requests to maintain continuous unavailability with minimal bandwidth. No authentication, no ML expertise, no special tooling required — a basic HTTP client suffices.
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