CVE-2022-21737: Assertion failure based denial of service in Tensorflow
(updated )
The implementation of *Bincount
operations allows malicious users to cause denial of service by passing in arguments which would trigger a CHECK
-fail:
import tensorflow as tf
tf.raw_ops.DenseBincount(
input=[[0], [1], [2]],
size=[1],
weights=[3,2,1],
binary_output=False)
There are several conditions that the input arguments must satisfy. Some are not caught during shape inference and others are not caught during kernel implementation. This results in CHECK
failures later when the output tensors get allocated.
References
- github.com/advisories/GHSA-f2vv-v9cg-qhh7
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2022-61.yaml
- github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2022-116.yaml
- github.com/tensorflow/tensorflow
- github.com/tensorflow/tensorflow/blob/5100e359aef5c8021f2e71c7b986420b85ce7b3d/tensorflow/core/kernels/bincount_op.cc
- github.com/tensorflow/tensorflow/commit/7019ce4f68925fd01cdafde26f8d8c938f47e6f9
- github.com/tensorflow/tensorflow/security/advisories/GHSA-f2vv-v9cg-qhh7
- nvd.nist.gov/vuln/detail/CVE-2022-21737
Detect and mitigate CVE-2022-21737 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →