Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-mq5c-prh3-3f3h

Опубликовано: 21 мая 2021
Источник: github
Github: Прошло ревью
CVSS4: 2
CVSS3: 3.6

Описание

Invalid validation in QuantizeAndDequantizeV2

Impact

The validation in tf.raw_ops.QuantizeAndDequantizeV2 allows invalid values for axis argument:

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_input=False, num_bits=1, range_given=False, round_mode='HALF_TO_EVEN', narrow_range=False, axis=-2)

The validation uses || to mix two different conditions:

OP_REQUIRES(ctx, (axis_ == -1 || axis_ < input.shape().dims()), errors::InvalidArgument(...));

If axis_ < -1 the condition in OP_REQUIRES will still be true, but this value of axis_ results in heap underflow. This allows attackers to read/write to other data on the heap.

Patches

We have patched the issue in GitHub commit c5b0d5f8ac19888e46ca14b0e27562e7fbbee9a9.

The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.

For more information

Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.

Attribution

This vulnerability has been reported by Yakun Zhang and Ying Wang of Baidu X-Team.

Пакеты

Наименование

tensorflow

pip
Затронутые версииВерсия исправления

< 2.1.4

2.1.4

Наименование

tensorflow

pip
Затронутые версииВерсия исправления

>= 2.2.0, < 2.2.3

2.2.3

Наименование

tensorflow

pip
Затронутые версииВерсия исправления

>= 2.3.0, < 2.3.3

2.3.3

Наименование

tensorflow

pip
Затронутые версииВерсия исправления

>= 2.4.0, < 2.4.2

2.4.2

Наименование

tensorflow-cpu

pip
Затронутые версииВерсия исправления

< 2.1.4

2.1.4

Наименование

tensorflow-cpu

pip
Затронутые версииВерсия исправления

>= 2.2.0, < 2.2.3

2.2.3

Наименование

tensorflow-cpu

pip
Затронутые версииВерсия исправления

>= 2.3.0, < 2.3.3

2.3.3

Наименование

tensorflow-cpu

pip
Затронутые версииВерсия исправления

>= 2.4.0, < 2.4.2

2.4.2

Наименование

tensorflow-gpu

pip
Затронутые версииВерсия исправления

< 2.1.4

2.1.4

Наименование

tensorflow-gpu

pip
Затронутые версииВерсия исправления

>= 2.2.0, < 2.2.3

2.2.3

Наименование

tensorflow-gpu

pip
Затронутые версииВерсия исправления

>= 2.3.0, < 2.3.3

2.3.3

Наименование

tensorflow-gpu

pip
Затронутые версииВерсия исправления

>= 2.4.0, < 2.4.2

2.4.2

EPSS

Процентиль: 3%
0.00017
Низкий

2 Low

CVSS4

3.6 Low

CVSS3

Дефекты

CWE-665
CWE-787

Связанные уязвимости

CVSS3: 3.6
nvd
больше 4 лет назад

TensorFlow is an end-to-end open source platform for machine learning. The validation in `tf.raw_ops.QuantizeAndDequantizeV2` allows invalid values for `axis` argument:. The validation(https://github.com/tensorflow/tensorflow/blob/eccb7ec454e6617738554a255d77f08e60ee0808/tensorflow/core/kernels/quantize_and_dequantize_op.cc#L74-L77) uses `||` to mix two different conditions. If `axis_ < -1` the condition in `OP_REQUIRES` will still be true, but this value of `axis_` results in heap underflow. This allows attackers to read/write to other data on the heap. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.

CVSS3: 3.6
debian
больше 4 лет назад

TensorFlow is an end-to-end open source platform for machine learning. ...

EPSS

Процентиль: 3%
0.00017
Низкий

2 Low

CVSS4

3.6 Low

CVSS3

Дефекты

CWE-665
CWE-787