PT-2021-21806 · Google · Tensorflow

Yakun Zhang

·

Publicado

2021-08-12

·

Atualizado

2024-03-06

·

CVE-2021-37687

CVSS v4.0

6.8

Média

VetorAV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Nome do software vulnerável e versões afetadas
Versões do TensorFlow anteriores à 2.6.0
Versões do TensorFlow 2.5.1 e anteriores
Versões do TensorFlow 2.4.3 e anteriores
Versões do TensorFlow 2.3.4 e anteriores
Descrição
O problema decorre do fato de a implementação GatherNd do TFLite não suportar índices negativos, mas não possuir verificações para essa situação, permitindo que um invasor leia dados arbitrários da pilha (heap) criando um modelo com valores negativos em indices. Um problema semelhante existe na implementação do Gather. Isso pode ser explorado criando-se cuidadosamente um modelo, conforme demonstrado em um exemplo em Python fornecido, que utiliza a função tf.gather com valores negativos em indices para ler dados da pilha.
Recomendações
Para versões anteriores à 2.6.0, atualize para o TensorFlow 2.6.0 ou posterior.
Para versões 2.5.1 e anteriores, atualize para o TensorFlow 2.5.1 ou posterior.
Para versões 2.4.3 e anteriores, atualize para o TensorFlow 2.4.3 ou posterior.
Para versões 2.3.4 e anteriores, atualize para o TensorFlow 2.3.4 ou posterior.
Como solução temporária, considere desativar as implementações GatherNd e Gather até que um patch esteja disponível. Restrinja o acesso ao kernel do TFLite vulnerável para minimizar o risco de exploração. Evite usar valores negativos em indices para os endpoints da API afetados até que o problema seja resolvido.

Correção

Out of bounds Read

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

BIT-TENSORFLOW-2021-37687
CVE-2021-37687
GHSA-JWF9-W5XM-F437
OPENSUSE-SU-2022:10014-1
OPENSUSE-SU-2024:12116-1
PYSEC-2021-309
PYSEC-2021-600
PYSEC-2021-798

Produtos afetados

Tensorflow