Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en "BuildTensorShapeBase" o "AddDimWithStatus" en un fallo "CHECK" en TensorFlow (CVE-2021-29584)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-190 Desbordamiento o ajuste de enteros
Fecha de publicación:
14/05/2021
Última modificación:
20/05/2021

Descripción

TensorFlow es una plataforma de código abierto de extremo a extremo para el aprendizaje automático. Un atacante puede desencadenar una denegación de servicio por medio de un fallo "CHECK" causada por un desbordamiento de enteros al construir una nueva forma de tensor. Esto es debido a que la implementación (https://github.com/tensorflow/tensorflow/blob/0908c2f2397c099338b901b067f6495a5b96760b/tensorflow/core/kernels/sparse_split_op.cc#L66-L70) crea una forma densa sin comprobar que las dimensiones no resulten en un desbordamiento . El constructor "TensorShape" (https://github.com/tensorflow/tensorflow/blob/6f9896890c4c703ae0a0845394086e2e1e523299/tensorflow/core/framework/tensor_shape.cc#L183-L188) usa una operación "CHECK" que es desencadenada (https://github.com/tensorflow/tensorflow/blob/6f9896890c4c703ae0a0845394086e2e1e523299/tensorflow/core/framework/tensor_shape.cc#L183-L188) : //github.com/tensorflow/tensorflow/blob/6f9896890c4c703ae0a0845394086e2e1e523299/tensorflow/core/framework/tensor_shape.cc#L212-L296) devuelve un estado no correcto. Esta es una implementación heredada del constructor y las operaciones deben usar "BuildTensorShapeBase" o "AddDimWithStatus" para evitar fallos de "CHECK" en presencia de desbordamientos. La corrección será incluida en TensorFlow versión 2.5.0. También seleccionaremos este compromiso en TensorFlow versión 2.4.2, TensorFlow versión 2.3.3, TensorFlow versión 2.2.3 y TensorFlow versión 2.1.4, ya que estos también están afectados y aún están en el rango admitido

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* 2.1.4 (excluyendo)
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* 2.2.0 (incluyendo) 2.2.3 (excluyendo)
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)