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

exploitDog

github логотип

GHSA-x7rp-74x2-mjf3

Опубликовано: 25 сент. 2020
Источник: github
Github: Прошло ревью
CVSS4: 8.2
CVSS3: 5.9

Описание

Segfault in Tensorflow

Impact

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. Thus, the following code sets up conditions to cause a heap buffer overflow:

auto per_batch_counts = BatchedMap<W>(num_batches); int batch_idx = 0; for (int idx = 0; idx < num_values; ++idx) { while (idx >= splits_values(batch_idx)) { batch_idx++; } const auto& value = values_values(idx); if (value >= 0 && (maxlength_ <= 0 || value < maxlength_)) { per_batch_counts[batch_idx - 1][value] = 1; } }

A BatchedMap is equivalent to a vector where each element is a hashmap. However, if the first element of splits_values is not 0, batch_idx will never be 1, hence there will be no hashmap at index 0 in per_batch_counts. Trying to access that in the user code results in a segmentation fault.

Patches

We have patched the issue in 3cbb917b4714766030b28eba9fb41bb97ce9ee02 and will release a patch release.

We recommend users to upgrade to TensorFlow 2.3.1.

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 is a variant of GHSA-p5f8-gfw5-33w4

Пакеты

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

tensorflow

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

= 2.3.0

2.3.1

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

tensorflow-cpu

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

= 2.3.0

2.3.1

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

tensorflow-gpu

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

= 2.3.0

2.3.1

EPSS

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

8.2 High

CVSS4

5.9 Medium

CVSS3

Дефекты

CWE-122
CWE-20
CWE-787

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

CVSS3: 5.9
nvd
больше 5 лет назад

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. Thus, the code sets up conditions to cause a heap buffer overflow. A `BatchedMap` is equivalent to a vector where each element is a hashmap. However, if the first element of `splits_values` is not 0, `batch_idx` will never be 1, hence there will be no hashmap at index 0 in `per_batch_counts`. Trying to access that in the user code results in a segmentation fault. The issue is patched in commit 3cbb917b4714766030b28eba9fb41bb97ce9ee02 and is released in TensorFlow version 2.3.1.

CVSS3: 5.9
debian
больше 5 лет назад

In Tensorflow before version 2.3.1, the `RaggedCountSparseOutput` impl ...

EPSS

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

8.2 High

CVSS4

5.9 Medium

CVSS3

Дефекты

CWE-122
CWE-20
CWE-787