Google Tensorflow vulnerabilities
432 known vulnerabilities affecting google/tensorflow.
Total CVEs
432
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
CRITICAL18HIGH234MEDIUM178LOW2
Vulnerabilities
Page 21 of 22
CVE-2020-15207CRITICALCVSS 9.0fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15207 [CRITICAL] CWE-119 CVE-2020-15207: In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, to mimic Python's indexing
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, to mimic Python's indexing with negative values, TFLite uses `ResolveAxis` to convert negative values to positive indices. However, the only check that the converted index is now valid is only present in debug builds. If the `DCHECK` does not trigger, then code execution mov
nvd
CVE-2020-15196CRITICALCVSS 9.9v2.3.02020-09-25
CVE-2020-15196 [CRITICAL] CWE-119 CVE-2020-15196: In Tensorflow version 2.3.0, the `SparseCountSparseOutput` and `RaggedCountSparseOutput` implementat
In Tensorflow version 2.3.0, the `SparseCountSparseOutput` and `RaggedCountSparseOutput` implementations don't validate that the `weights` tensor has the same shape as the data. The check exists for `DenseCountSparseOutput`, where both tensors are fully specified. In the sparse and ragged count weights are still accessed in parallel with the data.
nvd
CVE-2020-15208CRITICALCVSS 9.8fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15208 [CRITICAL] CWE-125 CVE-2020-15208: In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, when determining the commo
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, when determining the common dimension size of two tensors, TFLite uses a `DCHECK` which is no-op outside of debug compilation modes. Since the function always returns the dimension of the first tensor, malicious attackers can craft cases where this is larger than that of the
nvd
CVE-2020-15212HIGHCVSS 8.6≥ 2.2.0, < 2.2.1≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15212 [HIGH] CWE-787 CVE-2020-15212: In TensorFlow Lite before versions 2.2.1 and 2.3.1, models using segment sum can trigger writes outs
In TensorFlow Lite before versions 2.2.1 and 2.3.1, models using segment sum can trigger writes outside of bounds of heap allocated buffers by inserting negative elements in the segment ids tensor. Users having access to `segment_ids_data` can alter `output_index` and then write to outside of `output_data` buffer. This might result in a segmentation f
nvd
CVE-2020-15203HIGHCVSS 7.5fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15203 [HIGH] CWE-20 CVE-2020-15203: In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, by controlling the `fill` argum
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, by controlling the `fill` argument of 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. This may result in segmentation fault. The issue is patched in commit 33be22c65d8
nvd
CVE-2020-15214HIGHCVSS 8.1≥ 2.2.0, < 2.2.1≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15214 [HIGH] CWE-787 CVE-2020-15214: In TensorFlow Lite before versions 2.2.1 and 2.3.1, models using segment sum can trigger a write out
In TensorFlow Lite before versions 2.2.1 and 2.3.1, 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. This results in allocating ins
nvd
CVE-2020-15206HIGHCVSS 7.5fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15206 [HIGH] CWE-20 CVE-2020-15206: In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, changing the TensorFlow's `Save
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, changing the TensorFlow's `SavedModel` protocol buffer and altering the name of required keys results in segfaults and data corruption while loading the model. This can cause a denial of service in products using `tensorflow-serving` or other inference-as-a-service installments. Fixed
nvd
CVE-2020-15195HIGHCVSS 8.8fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15195 [HIGH] CWE-119 CVE-2020-15195: In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the implementation of `SparseFi
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the implementation of `SparseFillEmptyRowsGrad` uses a double indexing pattern. It is possible for `reverse_index_map(i)` to be an index outside of bounds of `grad_values`, thus resulting in a heap buffer overflow. The issue is patched in commit 390611e0d45c5793c7066110af37c8514e6a6c
nvd
CVE-2020-15193HIGHCVSS 7.1v2.2.0v2.3.02020-09-25
CVE-2020-15193 [HIGH] CWE-908 CVE-2020-15193: In Tensorflow before versions 2.2.1 and 2.3.1, the implementation of `dlpack.to_dlpack` can be made
In Tensorflow before versions 2.2.1 and 2.3.1, the implementation of `dlpack.to_dlpack` can be made to use uninitialized memory resulting in further memory corruption. This is because the pybind11 glue code assumes that the argument is a tensor. However, there is nothing stopping users from passing in a Python object instead of a tensor. The uninitiali
nvd
CVE-2020-15210MEDIUMCVSS 6.5fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15210 [MEDIUM] CWE-20 CVE-2020-15210: In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, if a TFLite saved model us
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, 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. We have patched the issue in d58c96946b and will release patch releases for all versions between
nvd
CVE-2020-15197MEDIUMCVSS 6.3v2.3.02020-09-25
CVE-2020-15197 [MEDIUM] CWE-20 CVE-2020-15197: In Tensorflow before version 2.3.1, the `SparseCountSparseOutput` implementation does not validate t
In Tensorflow before version 2.3.1, the `SparseCountSparseOutput` implementation does not validate that the input arguments form a valid sparse tensor. In particular, there is no validation that the `indices` tensor has rank 2. This tensor must be a matrix because code assumes its elements are accessed as elements of a matrix. However, malicious user
nvd
CVE-2020-15192MEDIUMCVSS 4.3v2.2.0v2.3.02020-09-25
CVE-2020-15192 [MEDIUM] CWE-20 CVE-2020-15192: In Tensorflow before versions 2.2.1 and 2.3.1, if a user passes a list of strings to `dlpack.to_dlpa
In Tensorflow before versions 2.2.1 and 2.3.1, if a user passes a list of strings to `dlpack.to_dlpack` there is a memory leak following an expected validation failure. The issue occurs because the `status` argument during validation failures is not properly checked. Since each of the above methods can return an error status, the `status` value must
nvd
CVE-2020-15198MEDIUMCVSS 5.4≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15198 [MEDIUM] CWE-119 CVE-2020-15198: In Tensorflow before version 2.3.1, the `SparseCountSparseOutput` implementation does not validate t
In Tensorflow before version 2.3.1, the `SparseCountSparseOutput` implementation does not validate that the input arguments form a valid sparse tensor. In particular, there is no validation that the `indices` tensor has the same shape as the `values` one. The values in these tensors are always accessed in parallel. Thus, a shape mismatch can result
nvd
CVE-2020-15199MEDIUMCVSS 5.9v2.3.02020-09-25
CVE-2020-15199 [MEDIUM] CWE-20 CVE-2020-15199: In Tensorflow before version 2.3.1, the `RaggedCountSparseOutput` does not validate that the input a
In Tensorflow before version 2.3.1, 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. Since `BatchedMap` is equivalent to a vec
nvd
CVE-2020-15211MEDIUMCVSS 4.8fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15211 [MEDIUM] CWE-125 CVE-2020-15211: In TensorFlow Lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, saved models in the flatbu
In TensorFlow Lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, saved models in the flatbuffer format use a double indexing scheme: a model has a set of subgraphs, each subgraph has a set of operators and each operator has a set of input/output tensors. The flatbuffer format uses indices for the tensors, indexing into an array of tensors t
nvd
CVE-2020-15204MEDIUMCVSS 5.3fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15204 [MEDIUM] CWE-476 CVE-2020-15204: In eager mode, TensorFlow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1 does not set the ses
In eager mode, TensorFlow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1 does not set the session state. Hence, calling `tf.raw_ops.GetSessionHandle` or `tf.raw_ops.GetSessionHandleV2` results in a null pointer dereference In linked snippet, in eager mode, `ctx->session_state()` returns `nullptr`. Since code immediately dereferences this, we
nvd
CVE-2020-15209MEDIUMCVSS 5.9fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15209 [MEDIUM] CWE-476 CVE-2020-15209: In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, a crafted TFLite model can
In tensorflow-lite before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, a crafted TFLite model can force a node to have as input a tensor backed by a `nullptr` buffer. This can be achieved by changing a buffer index in the flatbuffer serialization to convert a read-only tensor to a read-write one. The runtime assumes that these buffers are written
nvd
CVE-2020-15190MEDIUMCVSS 5.3fixed in 1.15.4≥ 2.0.0, < 2.0.3+3 more2020-09-25
CVE-2020-15190 [MEDIUM] CWE-20 CVE-2020-15190: In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the `tf.raw_ops.Switch` operati
In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the `tf.raw_ops.Switch` operation takes as input a tensor and a boolean and outputs two tensors. Depending on the boolean value, one of the tensors is exactly the input tensor whereas the other one should be an empty tensor. However, the eager runtime traverses all tensors in the ou
nvd
CVE-2020-15213MEDIUMCVSS 4.0≥ 2.2.0, < 2.2.1≥ 2.3.0, < 2.3.12020-09-25
CVE-2020-15213 [MEDIUM] CWE-119 CVE-2020-15213: In TensorFlow Lite before versions 2.2.1 and 2.3.1, models using segment sum can trigger a denial of
In TensorFlow Lite before versions 2.2.1 and 2.3.1, models using segment sum can trigger a denial of service by causing an out of memory allocation in the implementation of segment sum. Since code uses the last element of the tensor holding them to determine the dimensionality of output tensor, attackers can use a very large value to trigger a large
nvd
CVE-2020-15201MEDIUMCVSS 4.8v2.3.02020-09-25
CVE-2020-15201 [MEDIUM] CWE-20 CVE-2020-15201: In Tensorflow before version 2.3.1, the `RaggedCountSparseOutput` implementation does not validate t
In Tensorflow before version 2.3.1, the `RaggedCountSparseOutput` implementation does not validate that the input arguments form a valid ragged tensor. In particular, there is no validation that the values in the `splits` tensor generate a valid partitioning of the `values` tensor. Hence, the code is prone to heap buffer overflow. If `split_values` d
nvd