CVE-2022-36001: TensorFlow Denial of Service Vulnerability in DrawBoundingBoxes
Summary
CVE-2022-36001: TensorFlow vulnerable to CHECK fail in DrawBoundingBoxes. Affects tensorflow across 3 version ranges.
< 2.7.2
>= 2.8.0, < 2.8.1
>= 2.9.0, < 2.9.1
Fixed in 2.7.2, 2.8.1 or 2.9.1, depending on the release line you run. How to fix ↓
Also tracked for
- tensorflow-cpu · PyPI
- tensorflow-gpu · PyPI
- tensorflow · Bitnami
The same CVE-2022-36001 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
TensorFlow is an open-source machine learning library developed by Google, widely used for building and training machine learning models. It provides a comprehensive ecosystem for deep learning, including tools for data manipulation, model building, and deployment. However, TensorFlow is vulnerable to a specific issue in the DrawBoundingBoxes function, which can lead to a denial of service attack if not properly handled.
Vulnerability Detail
The vulnerability arises when the DrawBoundingBoxes function receives an input 'boxes' that is not of the expected dtype 'float'. This mismatch triggers a CHECK fail, which can cause the application to crash or become unresponsive, leading to a denial of service. The issue is particularly concerning as it can be exploited by an attacker to disrupt services that rely on TensorFlow for image processing tasks.
How To Fix
Latest published version: 2.21.0 as of 22 Oct 2026
pip install --upgrade "tensorflow==2.21.0"
Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.
If you can't move to the latest
The minimum fixed version depends on the release line you run.
-
< 2.7.22.7.2pip install --upgrade "tensorflow==2.7.2" -
>= 2.8.0, < 2.8.12.8.1pip install --upgrade "tensorflow==2.8.1" -
>= 2.9.0, < 2.9.12.9.1pip install --upgrade "tensorflow==2.9.1"
Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →
Workaround
As a temporary workaround, ensure that the input to the DrawBoundingBoxes function is always of dtype 'float'. Here is an example code snippet to enforce this:
import tensorflow as tf import numpy as np arg_0 = tf.constant(value=np.random.random(size=(1, 3, 2, 3)), shape=(1, 3, 2, 3), dtype=tf.float32) # Ensure dtype is float arg_1 = tf.constant(value=np.random.random(size=(1, 2, 4)), shape=(1, 2, 4), dtype=tf.float32) arg_2 = '' tf.raw_ops.DrawBoundingBoxes(images=arg_0, boxes=arg_1, name=arg_2)
Conclusion
In summary, CVE-2022-36001 is a significant vulnerability in TensorFlow's DrawBoundingBoxes function that can lead to denial of service. It is crucial to update to the latest patched version or implement the recommended workarounds to mitigate the risk.
See every vulnerability recorded for tensorflow →
FAQ
CVE-2022-36001 is a vulnerability in TensorFlow that can lead to a denial of service when the DrawBoundingBoxes function is provided with incorrect input types.
You can check if your application is affected by using the Vulert playground at Vulert Scanner, which monitors open-source vulnerabilities in real-time.
The main consequence is a denial of service, where the application may crash or become unresponsive, affecting any services that depend on TensorFlow.
You can update TensorFlow to the patched version by running the command: pip install --upgrade tensorflow.
The CVSS score for this vulnerability is 5.9, indicating a moderate level of severity.
References
Related vulnerabilities
Recent vulnerabilities recorded for tensorflow.