Vulnerabilidad en la función hash "TensorKey" en TensorFlow (CVE-2022-29210)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-787
Escritura fuera de límites
Fecha de publicación:
21/05/2022
Última modificación:
28/06/2023
Descripción
TensorFlow es una plataforma de código abierto para el aprendizaje automático. En la versión 2.8.0, la función hash "TensorKey" usaba el total estimado de "AllocatedBytes()", que (a) es una estimación por tensor, y (b) es una función hash muy pobre para constantes (por ejemplo, "int32_t"). También intentó acceder a bytes individuales del tensor mediante "tensor.data()" de tamaño "AllocatedBytes()". Esto conllevaba a fallos de ASAN porque "AllocatedBytes()" es una estimación del total de bytes asignados por un tensor, incluyendo cualquier construcción apuntada (por ejemplo, cadenas), y no es referido a bytes contiguos en el buffer ".data()". Los detectores no podían usar este vector de bytes de todos modos porque tipos como "tstring" incluyen punteros, mientras que ellos necesitaban hacer un hash de los valores de las cadenas por sí mismos. Este problema está parcheado en Tensorflow versiones 2.9.0 y 2.8.1
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Puntuación base 2.0
2.10
Gravedad 2.0
BAJA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:google:tensorflow:2.8.0:*:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/tensorflow/tensorflow/blob/f3b9bf4c3c0597563b289c0512e98d4ce81f886e/tensorflow/core/framework/tensor_key.h#L53-L64
- https://github.com/tensorflow/tensorflow/commit/1b85a28d395dc91f4d22b5f9e1e9a22e92ccecd6
- https://github.com/tensorflow/tensorflow/releases/tag/v2.8.1
- https://github.com/tensorflow/tensorflow/releases/tag/v2.9.0
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-hc2f-7r5r-r2hg



