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

exploitDog

github логотип

GHSA-4f99-p9c2-3j8x

Опубликовано: 10 нояб. 2021
Источник: github
Github: Прошло ревью
CVSS3: 7.8

Описание

Undefined behavior via nullptr reference binding in sparse matrix multiplication

Impact

The code for sparse matrix multiplication is vulnerable to undefined behavior via binding a reference to nullptr:

import tensorflow as tf tf.raw_ops.SparseMatMul( a=[[1.0,1.0,1.0]], b=[[],[],[]], transpose_a=False, transpose_b=False, a_is_sparse=False, b_is_sparse=True)

This occurs whenever the dimensions of a or b are 0 or less. In the case on one of these is 0, an empty output tensor should be allocated (to conserve the invariant that output tensors are always allocated when the operation is successful) but nothing should be written to it (that is, we should return early from the kernel implementation). Otherwise, attempts to write to this empty tensor would result in heap OOB access.

Patches

We have patched the issue in GitHub commit e6cf28c72ba2eb949ca950d834dd6d66bb01cfae.

The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.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 members of the Aivul Team from Qihoo 360.

Пакеты

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

tensorflow

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

>= 2.6.0, < 2.6.1

2.6.1

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

tensorflow

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

>= 2.5.0, < 2.5.2

2.5.2

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

tensorflow

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

< 2.4.4

2.4.4

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

tensorflow-cpu

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

>= 2.6.0, < 2.6.1

2.6.1

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

tensorflow-cpu

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

>= 2.5.0, < 2.5.2

2.5.2

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

tensorflow-cpu

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

< 2.4.4

2.4.4

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

tensorflow-gpu

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

>= 2.6.0, < 2.6.1

2.6.1

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

tensorflow-gpu

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

>= 2.5.0, < 2.5.2

2.5.2

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

tensorflow-gpu

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

< 2.4.4

2.4.4

EPSS

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

7.8 High

CVSS3

Дефекты

CWE-125
CWE-824

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

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

TensorFlow is an open source platform for machine learning. In affected versions the code for sparse matrix multiplication is vulnerable to undefined behavior via binding a reference to `nullptr`. This occurs whenever the dimensions of `a` or `b` are 0 or less. In the case on one of these is 0, an empty output tensor should be allocated (to conserve the invariant that output tensors are always allocated when the operation is successful) but nothing should be written to it (that is, we should return early from the kernel implementation). Otherwise, attempts to write to this empty tensor would result in heap OOB access. The fix will be included in TensorFlow 2.7.0. We will also cherrypick this commit on TensorFlow 2.6.1, TensorFlow 2.5.2, and TensorFlow 2.4.4, as these are also affected and still in supported range.

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

TensorFlow is an open source platform for machine learning. In affecte ...

EPSS

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

7.8 High

CVSS3

Дефекты

CWE-125
CWE-824