Intel Optimization For Tensorflow vulnerabilities
429 known vulnerabilities affecting intel/optimization_for_tensorflow.
Total CVEs
429
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
CRITICAL5HIGH121MEDIUM200LOW103
Vulnerabilities
Page 7 of 22
CVE-2022-35989P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-35989 [MEDIUM] CWE-617 TensorFlow vulnerable to `CHECK` fail in `MaxPool`
TensorFlow vulnerable to `CHECK` fail in `MaxPool`
### Impact
When `MaxPool` receives a window size input array `ksize` with dimensions greater than its input tensor `input`, the GPU kernel gives a `CHECK` fail that can be used to trigger a denial of service attack.
```python
import tensorflow as tf
import numpy as np
input = np.ones([1, 1, 1, 1])
ksize = [1, 1, 2, 2]
strides = [1, 1, 1, 1]
padding = 'VALID'
dat
ghsaosv
CVE-2022-35990P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-35990 [MEDIUM] CWE-617 TensorFlow vulnerable to `CHECK` fail in `FakeQuantWithMinMaxVarsPerChannelGradient`
TensorFlow vulnerable to `CHECK` fail in `FakeQuantWithMinMaxVarsPerChannelGradient`
### Impact
When `tf.quantization.fake_quant_with_min_max_vars_per_channel_gradient` receives input `min` or `max` of rank other than 1, it gives a `CHECK` fail that can trigger a denial of service attack.
```python
import tensorflow as tf
arg_0=tf.random.uniform(shape=(1,1), dtype=tf.float32, max
ghsaosv
CVE-2022-35959P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-35959 [MEDIUM] CWE-617 TensorFlow vulnerable to `CHECK` failures in `AvgPool3DGrad`
TensorFlow vulnerable to `CHECK` failures in `AvgPool3DGrad`
### Impact
The implementation of `AvgPool3DGradOp` does not fully validate the input `orig_input_shape`. This results in an overflow that results in a `CHECK` failure which can be used to trigger a denial of service attack:
```python
import tensorflow as tf
ksize = [1, 1, 1, 1, 1]
strides = [1, 1, 1, 1, 1]
padding = "SAME"
data_format = "NDHW
ghsaosv
CVE-2022-35971P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-35971 [MEDIUM] CWE-617 TensorFlow vulnerable to `CHECK` fail in `FakeQuantWithMinMaxVars`
TensorFlow vulnerable to `CHECK` fail in `FakeQuantWithMinMaxVars`
### Impact
If `FakeQuantWithMinMaxVars` is given `min` or `max` tensors of a nonzero rank, it results in a `CHECK` fail that can be used to trigger a denial of service attack.
```python
import tensorflow as tf
num_bits = 8
narrow_range = False
inputs = tf.constant(0, shape=[2,3], dtype=tf.float32)
min = tf.constant(0, shape=[2,3],
ghsaosv
CVE-2022-35969P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-35969 [MEDIUM] TensorFlow vulnerable to `CHECK` fail in `Conv2DBackpropInput`
TensorFlow vulnerable to `CHECK` fail in `Conv2DBackpropInput`
### Impact
The implementation of `Conv2DBackpropInput` requires `input_sizes` to be 4-dimensional. Otherwise, it gives a `CHECK` failure which can be used to trigger a denial of service attack:
```python
import tensorflow as tf
strides = [1, 1, 1, 1]
padding = "SAME"
use_cudnn_on_gpu = True
explicit_paddings = []
data_format = "NHWC"
dilations =
ghsaosv
CVE-2022-36018P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-36018 [MEDIUM] CWE-617 TensorFlow vulnerable to `CHECK` fail in `RaggedTensorToVariant`
TensorFlow vulnerable to `CHECK` fail in `RaggedTensorToVariant`
### Impact
If `RaggedTensorToVariant` is given a `rt_nested_splits` list that contains tensors of ranks other than one, it results in a `CHECK` fail that can be used to trigger a denial of service attack.
```python
import tensorflow as tf
batched_input = True
rt_nested_splits = tf.constant([0,32,64], shape=[3], dtype=tf.int64)
rt_dens
ghsaosv
CVE-2022-41911P3MEDIUM≥ 0, < 2.8.4≥ 2.9.0, < 2.9.3+1 more2022-11-21
CVE-2022-41911 [MEDIUM] CWE-704 Invalid char to bool conversion when printing a tensor
Invalid char to bool conversion when printing a tensor
### Impact
When [printing a tensor](https://github.com/tensorflow/tensorflow/blob/807cae8a807960fd7ac2313cde73a11fc15e7942/tensorflow/core/framework/tensor.cc#L1200-L1227), we get it's data as a `const char*` array (since that's the underlying storage) and then we typecast it to the element type. However, conversions from `char` to `bool` are undefined if
ghsaosv
CVE-2023-25665P3HIGH≥ 0, < 2.11.12023-03-24
CVE-2023-25665 [HIGH] CWE-476 TensorFlow has Null Pointer Error in SparseSparseMaximum
TensorFlow has Null Pointer Error in SparseSparseMaximum
### Impact
When `SparseSparseMaximum` is given invalid sparse tensors as inputs, it can give an NPE.
```python
import tensorflow as tf
tf.raw_ops.SparseSparseMaximum(
a_indices=[[1]],
a_values =[ 0.1 ],
a_shape = [2],
b_indices=[[]],
b_values =[2 ],
b_shape = [2],
)
```
### Patches
We have patched the issue in GitHub commit [5e0ecfb42f5f65629fd7a4edd6
ghsaosv
CVE-2023-33976P3HIGH≥ 0, < 2.12.12024-07-30
CVE-2023-33976 [HIGH] CWE-190 TensorFlow has segfault in array_ops.upper_bound
TensorFlow has segfault in array_ops.upper_bound
### Impact
`array_ops.upper_bound` causes a segfault when not given a rank 2 tensor.
### Patches
We have patched the issue in GitHub commit [915884fdf5df34aaedd00fc6ace33a2cfdefa586](https://github.com/tensorflow/tensorflow/commit/915884fdf5df34aaedd00fc6ace33a2cfdefa586).
The fix will be included in TensorFlow 2.13. We will also cherrypick this commit in TensorFlow
ghsaosv
CVE-2023-25676P3HIGH≥ 0, < 2.11.12023-03-24
CVE-2023-25676 [HIGH] CWE-476 TensorFlow has null dereference on ParallelConcat with XLA
TensorFlow has null dereference on ParallelConcat with XLA
### Impact
When running with XLA, `tf.raw_ops.ParallelConcat` segfaults with a nullptr dereference when given a parameter `shape` with rank that is not greater than zero.
```python
import tensorflow as tf
func = tf.raw_ops.ParallelConcat
para = {'shape': 0, 'values': [1]}
@tf.function(jit_compile=True)
def test():
y = func(**para)
return y
test(
ghsaosv
CVE-2023-25667P3MEDIUM≥ 0, < 2.11.12023-03-24
CVE-2023-25667 [MEDIUM] CWE-190 TensorFlow vulnerable to segfault when opening multiframe gif
TensorFlow vulnerable to segfault when opening multiframe gif
### Impact
Integer overflow occurs when 2^31 <= num_frames * height * width * channels < 2^32, for example Full HD screencast of at least 346 frames.
```python
import urllib.request
dat = urllib.request.urlopen('https://raw.githubusercontent.com/tensorflow/tensorflow/1c38ad9b78ffe06076745a1ee00cec42f39ff726/tensorflow/core/lib/gif/testdata/3
ghsaosv
CVE-2021-29612P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29612 [LOW] CWE-120 Heap buffer overflow in `BandedTriangularSolve`
Heap buffer overflow in `BandedTriangularSolve`
### Impact
An attacker can trigger a heap buffer overflow in Eigen implementation of `tf.raw_ops.BandedTriangularSolve`:
```python
import tensorflow as tf
import numpy as np
matrix_array = np.array([])
matrix_tensor = tf.convert_to_tensor(np.reshape(matrix_array,(0,1)),dtype=tf.float32)
rhs_array = np.array([1,1])
rhs_tensor = tf.convert_to_tensor(np.reshape(rhs_array,(
ghsaosv
CVE-2021-29591P3HIGH≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29591 [HIGH] CWE-674 Stack overflow due to looping TFLite subgraph
Stack overflow due to looping TFLite subgraph
### Impact
TFlite graphs must not have loops between nodes. However, this condition was not checked and an attacker could craft models that would result in infinite loop during evaluation. In certain cases, the infinite loop would be replaced by stack overflow due to too many recursive calls.
For example, the [`While` implementation](https://github.com/tensorflow/tensorflow
ghsaosv
CVE-2021-29608P3MEDIUM≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29608 [MEDIUM] CWE-131 Heap OOB and null pointer dereference in `RaggedTensorToTensor`
Heap OOB and null pointer dereference in `RaggedTensorToTensor`
### Impact
Due to lack of validation in `tf.raw_ops.RaggedTensorToTensor`, an attacker can exploit an undefined behavior if input arguments are empty:
```python
import tensorflow as tf
shape = tf.constant([-1, -1], shape=[2], dtype=tf.int64)
values = tf.constant([], shape=[0], dtype=tf.int64)
default_value = tf.constant(404, dtype=tf.i
ghsaosv
CVE-2021-29614P3MEDIUM≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29614 [MEDIUM] CWE-665 Interpreter crash from `tf.io.decode_raw`
Interpreter crash from `tf.io.decode_raw`
### Impact
The implementation of `tf.io.decode_raw` produces incorrect results and crashes the Python interpreter when combining `fixed_length` and wider datatypes.
```python
import tensorflow as tf
tf.io.decode_raw(tf.constant(["1","2","3","4"]), tf.uint16, fixed_length=4)
```
The [implementation of the padded version](https://github.com/tensorflow/tensorflow/blob/1d8903e5b167
ghsaosv
CVE-2021-41214P3HIGH≥ 2.6.0, < 2.6.1≥ 2.5.0, < 2.5.2+1 more2021-11-10
CVE-2021-41214 [HIGH] CWE-824 Reference binding to `nullptr` in `tf.ragged.cross`
Reference binding to `nullptr` in `tf.ragged.cross`
### Impact
The [shape inference code for `tf.ragged.cross`](https://github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/ops/ragged_array_ops.cc#L64) has an undefined behavior due to binding a reference to `nullptr`. In the following scenario, this results in a crash:
```python
import tensorflow as tf
@tf.function
def t
ghsaosv
CVE-2021-29606P3MEDIUM≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29606 [MEDIUM] CWE-125 Heap OOB read in TFLite
Heap OOB read in TFLite
### Impact
A specially crafted TFLite model could trigger an OOB read on heap in the TFLite implementation of [`Split_V`](https://github.com/tensorflow/tensorflow/blob/c59c37e7b2d563967da813fa50fe20b21f4da683/tensorflow/lite/kernels/split_v.cc#L99):
```cc
const int input_size = SizeOfDimension(input, axis_value);
```
If `axis_value` is not a value between 0 and `NumDimensions(input)`, then the [`SizeOfDimension` f
ghsaosv
CVE-2021-29540P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29540 [LOW] CWE-120 Heap buffer overflow in `Conv2DBackpropFilter`
Heap buffer overflow in `Conv2DBackpropFilter`
### Impact
An attacker can cause a heap buffer overflow to occur in `Conv2DBackpropFilter`:
```python
import tensorflow as tf
input_tensor = tf.constant([386.078431372549, 386.07843139643234],
shape=[1, 1, 1, 2], dtype=tf.float32)
filter_sizes = tf.constant([1, 1, 1, 1], shape=[4], dtype=tf.int32)
out_backprop = tf.constant([386.078431372549], shape=[1, 1, 1, 1],
dtype=tf
ghsaosv
CVE-2021-29578P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29578 [LOW] CWE-119 Heap buffer overflow in `FractionalAvgPoolGrad`
Heap buffer overflow in `FractionalAvgPoolGrad`
### Impact
The implementation of `tf.raw_ops.FractionalAvgPoolGrad` is vulnerable to a heap buffer overflow:
```python
import tensorflow as tf
orig_input_tensor_shape = tf.constant([1, 3, 2, 3], shape=[4], dtype=tf.int64)
out_backprop = tf.constant([2], shape=[1, 1, 1, 1], dtype=tf.int64)
row_pooling_sequence = tf.constant([1], shape=[1], dtype=tf.int64)
col_pooling_seq
ghsaosv
CVE-2021-29577P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29577 [LOW] CWE-119 Heap buffer overflow in `AvgPool3DGrad`
Heap buffer overflow in `AvgPool3DGrad`
### Impact
The implementation of `tf.raw_ops.AvgPool3DGrad` is vulnerable to a heap buffer overflow:
```python
import tensorflow as tf
orig_input_shape = tf.constant([10, 6, 3, 7, 7], shape=[5], dtype=tf.int32)
grad = tf.constant([0.01, 0, 0], shape=[3, 1, 1, 1, 1], dtype=tf.float32)
ksize = [1, 1, 1, 1, 1]
strides = [1, 1, 1, 1, 1]
padding = "SAME"
tf.raw_ops.AvgPool3DGrad(
orig_inpu
ghsaosv