Vulnerabilidad en el argumento "splits" de "RaggedBincount" en TensorFlow (CVE-2021-29514)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-787
Escritura fuera de límites
Fecha de publicación:
14/05/2021
Última modificación:
26/07/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-L446). Antes del bucle "for", "batch_idx" es establecido en 0. El atacante establece "splits (0)" en 7, por lo tanto, el bucle "while" no se ejecuta y "batch_idx" permanece en 0. Esto resulta en una escritura en "out (-1, bin)", que está ubicado antes del búfer asignado a la pila para el tensor de salida. La corrección será incluída en TensorFlow versión 2.5.0
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