Vulnerabilidad en la función "RaggedBincount" en TensorFlow (CVE-2021-29512)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-787
Escritura fuera de límites
Fecha de publicación:
14/05/2021
Última modificación:
19/05/2021
Descripción
TensorFlow es una plataforma de código abierto de extremo a extremo para el aprendizaje automático. Si el argumento "splits" de "RaggedBincount" no especifica un "SparseTensor" válido (https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor), entonces un atacante puede desencadenar un desbordamiento del búfer de la pila. Esto causará una lectura desde fuera de límites del búfer tensorial "splits" en una implementación de la operación "RaggedBincount" (https://github.com/tensorflow/tensorflow/blob/8b677d79167799f71c42fd3fa074476e0295413a/tensorflow/core/kernels/bincount_op. cc#L430-L433). Antes del bucle "for","batch_idx" es ajustado en 0. El usuario controla la matriz "splits", haciendo que contenga solo un elemento, 0. Por lo tanto, el código en el bucle "while" incrementaría "batch_idx" y luego intenta leer "splits(1)", que está fuera de límites. La corrección será incluída en TensorFlow versión 2.5.0. También seleccionaremos este commit en TensorFlow versión 2.4.2 y TensorFlow versión 2.3.3, ya que estos también están afectados
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Puntuación base 2.0
4.60
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* | 2.3.0 (incluyendo) | 2.3.3 (excluyendo) |
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* | 2.4.0 (incluyendo) | 2.4.2 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página