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 20 of 22
CVE-2021-29615LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29615 [LOW] CWE-674 Stack overflow in `ParseAttrValue` with nested tensors
Stack overflow in `ParseAttrValue` with nested tensors
### Impact
The implementation of [`ParseAttrValue`](https://github.com/tensorflow/tensorflow/blob/c22d88d6ff33031aa113e48aa3fc9aa74ed79595/tensorflow/core/framework/attr_value_util.cc#L397-L453) can be tricked into stack overflow due to recursion by giving in a specially crafted input.
### Patches
We have patched the issue in GitHub commit [e07e1c3d26492c06
ghsaosv
CVE-2021-29610LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29610 [LOW] CWE-665 Invalid validation in `QuantizeAndDequantizeV2`
Invalid validation in `QuantizeAndDequantizeV2`
### Impact
The validation in `tf.raw_ops.QuantizeAndDequantizeV2` allows invalid values for `axis` argument:
```python
import tensorflow as tf
input_tensor = tf.constant([0.0], shape=[1], dtype=float)
input_min = tf.constant(-10.0)
input_max = tf.constant(-10.0)
tf.raw_ops.QuantizeAndDequantizeV2(
input=input_tensor, input_min=input_min, input_max=input_max,
signed_inp
ghsaosv
CVE-2021-29547LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29547 [LOW] CWE-125 Heap out of bounds in `QuantizedBatchNormWithGlobalNormalization`
Heap out of bounds in `QuantizedBatchNormWithGlobalNormalization`
### Impact
An attacker can cause a segfault and denial of service via accessing data outside of bounds in `tf.raw_ops.QuantizedBatchNormWithGlobalNormalization`:
```python
import tensorflow as tf
t = tf.constant([1], shape=[1, 1, 1, 1], dtype=tf.quint8)
t_min = tf.constant([], shape=[0], dtype=tf.float32)
t_max = tf.constant([], shape
ghsaosv
CVE-2021-29596LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29596 [LOW] CWE-369 Division by zero in TFLite's implementation of `EmbeddingLookup`
Division by zero in TFLite's implementation of `EmbeddingLookup`
The implementation of the `EmbeddingLookup` TFLite operator is [vulnerable to a division by zero error](https://github.com/tensorflow/tensorflow/blob/e4b29809543b250bc9b19678ec4776299dd569ba/tensorflow/lite/kernels/embedding_lookup.cc#L73-L74):
```cc
const int row_size = SizeOfDimension(value, 0);
const int row_bytes = value->bytes / row
ghsaosv
CVE-2021-29522LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29522 [LOW] CWE-369 Division by 0 in `Conv3DBackprop*`
Division by 0 in `Conv3DBackprop*`
### Impact
The `tf.raw_ops.Conv3DBackprop*` operations fail to validate that the input tensors are not empty. In turn, this would result in a division by 0:
```python
import tensorflow as tf
input_sizes = tf.constant([0, 0, 0, 0, 0], shape=[5], dtype=tf.int32)
filter_tensor = tf.constant([], shape=[0, 0, 0, 1, 0], dtype=tf.float32)
out_backprop = tf.constant([], shape=[0, 0, 0, 0, 0], dtype=tf.f
ghsaosv
CVE-2021-29523LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29523 [LOW] CWE-190 CHECK-fail in AddManySparseToTensorsMap
CHECK-fail in AddManySparseToTensorsMap
### Impact
An attacker can trigger a denial of service via a `CHECK`-fail in `tf.raw_ops.AddManySparseToTensorsMap`:
```python
import tensorflow as tf
import numpy as np
sparse_indices = tf.constant(530, shape=[1, 1], dtype=tf.int64)
sparse_values = tf.ones([1], dtype=tf.int64)
shape = tf.Variable(tf.ones([55], dtype=tf.int64))
shape[:8].assign(np.array([855, 901, 429, 892, 892, 852,
ghsaosv
CVE-2021-29602LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29602 [LOW] CWE-369 Division by zero in TFLite's implementation of `DepthwiseConv`
Division by zero in TFLite's implementation of `DepthwiseConv`
### Impact
The implementation of the `DepthwiseConv` TFLite operator is [vulnerable to a division by zero error](https://github.com/tensorflow/tensorflow/blob/1a8e885b864c818198a5b2c0cbbeca5a1e833bc8/tensorflow/lite/kernels/depthwise_conv.cc#L287-L288):
```cc
int num_input_channels = SizeOfDimension(input, 3);
TF_LITE_ENSURE_EQ(context, num_
ghsaosv
CVE-2021-29612LOW≥ 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-2020-26270MEDIUM≥ 0, < 1.15.5≥ 2.0.0, < 2.0.4+3 more2020-12-10
CVE-2020-26270 [MEDIUM] CWE-20 CHECK-fail in LSTM with zero-length input in TensorFlow
CHECK-fail in LSTM with zero-length input in TensorFlow
### Impact
Running an LSTM/GRU model where the LSTM/GRU layer receives an input with zero-length results in a `CHECK` failure when using the CUDA backend.
This can result in a query-of-death vulnerability, via denial of service, if users can control the input to the layer.
### Patches
We have patched the issue in GitHub commit [14755416e364f17fb1870882
ghsaosv
CVE-2020-26271MEDIUM≥ 0, < 1.15.5≥ 2.0.0, < 2.0.4+3 more2020-12-10
CVE-2020-26271 [MEDIUM] CWE-125 Heap out of bounds access in MakeEdge in TensorFlow
Heap out of bounds access in MakeEdge in TensorFlow
### Impact
Under certain cases, loading a saved model can result in accessing uninitialized memory while building the computation graph. The [`MakeEdge` function](https://github.com/tensorflow/tensorflow/blob/3616708cb866365301d8e67b43b32b46d94b08a0/tensorflow/core/common_runtime/graph_constructor.cc#L1426-L1438) creates an edge between one output tensor of the
ghsaosv
CVE-2020-26268MEDIUM≥ 0, < 1.15.5≥ 2.0.0, < 2.0.4+3 more2020-12-10
CVE-2020-26268 [MEDIUM] CWE-471 Write to immutable memory region in TensorFlow
Write to immutable memory region in TensorFlow
### Impact
The `tf.raw_ops.ImmutableConst` operation returns a constant tensor created from a memory mapped file which is assumed immutable. However, if the type of the tensor is not an integral type, the operation crashes the Python interpreter as it tries to write to the memory area:
```python
>>> import tensorflow as tf
>>> with open('/tmp/test.txt','w') as f: f.writ
ghsaosv
CVE-2020-26266MEDIUM≥ 0, < 1.15.5≥ 2.0.0, < 2.0.4+3 more2020-12-10
CVE-2020-26266 [MEDIUM] CWE-908 Uninitialized memory access in TensorFlow
Uninitialized memory access in TensorFlow
### Impact
Under certain cases, a saved model can trigger use of uninitialized values during code execution. This is caused by having tensor buffers be filled with the default value of the type but forgetting to [default initialize the quantized floating point types in Eigen](https://github.com/tensorflow/tensorflow/blob/f70160322a579144950dff1537dcbe3c7c09d6f5/third_party/eigen3/
ghsaosv
CVE-2020-26267LOW≥ 0, < 1.15.5≥ 2.0.0, < 2.0.4+3 more2020-12-10
CVE-2020-26267 [LOW] CWE-125 Lack of validation in data format attributes in TensorFlow
Lack of validation in data format attributes in TensorFlow
### Impact
The `tf.raw_ops.DataFormatVecPermute` API does not validate the `src_format` and `dst_format` attributes. [The code](https://github.com/tensorflow/tensorflow/blob/304b96815324e6a73d046df10df6626d63ac12ad/tensorflow/core/kernels/data_format_ops.cc) assumes that these two arguments define a permutation of `NHWC`.
However, these assumptions
ghsaosv
CVE-2020-15265HIGH≥ 0, < 2.4.02020-11-13
CVE-2020-15265 [HIGH] CWE-125 Segfault in `tf.quantization.quantize_and_dequantize`
Segfault in `tf.quantization.quantize_and_dequantize`
### Impact
An attacker can pass an invalid `axis` value to `tf.quantization.quantize_and_dequantize`:
```python
tf.quantization.quantize_and_dequantize(
input=[2.5, 2.5], input_min=[0,0], input_max=[1,1], axis=10)
```
This results in accessing [a dimension outside the rank of the input tensor](https://github.com/tensorflow/tensorflow/blob/0225022b725993bfc1
ghsaosv
CVE-2020-15266MEDIUM≥ 0, < 2.4.02020-11-13
CVE-2020-15266 [MEDIUM] CWE-119 Float cast overflow undefined behavior
Float cast overflow undefined behavior
### Impact
When the `boxes` argument of `tf.image.crop_and_resize` has a very large value, the CPU kernel implementation receives it as a C++ `nan` floating point value. Attempting to operate on this is undefined behavior which later produces a segmentation fault.
### Patches
We have patched the issue in c0319231333f0f16e1cc75ec83660b01fedd4182 and will release TensorFlow 2.4.0 contai
ghsaosv
CVE-2020-15212CRITICAL≥ 2.2.0, < 2.2.1≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15212 [CRITICAL] CWE-787 Out of bounds access in tensorflow-lite
Out of bounds access in tensorflow-lite
### Impact
In TensorFlow Lite models using segment sum can trigger writes outside of bounds of heap allocated buffers by inserting negative elements in the segment ids tensor:
https://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf/tensorflow/lite/kernels/internal/reference/reference_ops.h#L2625-L2631
Users having access to `segment_ids_data` can alte
ghsaosv
CVE-2020-15214CRITICAL≥ 2.2.0, < 2.2.1≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15214 [CRITICAL] CWE-787 Out of bounds write in tensorflow-lite
Out of bounds write in tensorflow-lite
### Impact
In TensorFlow Lite models using segment sum can trigger a write out bounds / segmentation fault if the segment ids are not sorted. Code assumes that the segment ids are in increasing order, using the last element of the tensor holding them to determine the dimensionality of output tensor:
https://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf
ghsaosv
CVE-2020-15199HIGH≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15199 [HIGH] CWE-20 Denial of Service in Tensorflow
Denial of Service in Tensorflow
### Impact
The `RaggedCountSparseOutput` does not validate that the input arguments form a valid ragged tensor. In particular, there is no validation that the `splits` tensor has the minimum required number of elements. Code uses this quantity to initialize a different data structure:
https://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf/tensorflow/core/kernels/count_ops
ghsaosv
CVE-2020-15210HIGH≥ 0, < 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15210 [HIGH] CWE-20 Segmentation fault in tensorflow-lite
Segmentation fault in tensorflow-lite
### Impact
If a TFLite saved model uses the same tensor as both input and output of an operator, then, depending on the operator, we can observe a segmentation fault or just memory corruption.
### Patches
We have patched the issue in d58c96946b and will release patch releases for all versions between 1.15 and 2.3.
We recommend users to upgrade to TensorFlow 1.15.4, 2.0.3, 2.1.2, 2.2.1, or
ghsaosv
CVE-2020-15203HIGH≥ 0, < 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15203 [HIGH] CWE-134 Denial of Service in Tensorflow
Denial of Service in Tensorflow
### Impact
By controlling the `fill` argument of [`tf.strings.as_string`](https://www.tensorflow.org/api_docs/python/tf/strings/as_string), a malicious attacker is able to trigger a format string vulnerability due to the way the internal format use in a `printf` call is constructed: https://github.com/tensorflow/tensorflow/blob/0e68f4d3295eb0281a517c3662f6698992b7b2cf/tensorflow/core/kernels/as_string_
ghsaosv