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

Vulnerabilidad en unas raw APIs en TensorFlow (CVE-2021-37639)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-125 Lectura fuera de límites
Fecha de publicación:
12/08/2021
Última modificación:
25/04/2022

Descripción

TensorFlow es una plataforma de código abierto de extremo a extremo para el aprendizaje automático. Cuando se restauran tensores por medio de raw APIs, si no se proporciona el nombre del tensor, TensorFlow puede ser engañado para que haga desreferencia a un puntero null. Alternativamente, los atacantes pueden leer memoria fuera de límites de los datos asignados a la pila al proporcionar algunos nombres de tensor pero no los suficientes para una restauración con éxito. La [implementación](https://github.com/tensorflow/tensorflow/blob/47a06f40411a69c99f381495f490536972152ac0/tensorflow/core/kernels/save_restore_tensor.cc#L158-L159) recupera la lista de tensores correspondiente a la entrada controlada por el usuario "tensor_name" y recupera inmediatamente el tensor en el índice de restauración (controlado por medio del argumento "preferred_shard"). Esto ocurre sin comprender que la lista proporcionada presenta suficientes valores. Si la lista está vacía esto resulta en una desreferenciación de puntero null (comportamiento indefinido). Sin embargo, si la lista presenta algunos elementos, si el índice de restauración está fuera de límites esto resulta en una lectura OOB de la pila. Hemos parcheado el problema en el commit de GitHub 9e82dce6e6bd1f36a57e08fa85af213e2b2f2622. La corrección se incluirá en TensorFlow versión 2.6.0. También se incluirá este commit en TensorFlow versión 2.5.1, TensorFlow versión 2.4.3, y TensorFlow versión 2.3.4, ya que estos también están afectados y todavía en el rango de soporte.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* 2.3.0 (incluyendo) 2.3.4 (excluyendo)
cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* 2.4.0 (incluyendo) 2.4.3 (excluyendo)
cpe:2.3:a:google:tensorflow:2.5.0:*:*:*:*:*:*:*
cpe:2.3:a:google:tensorflow:2.6.0:rc0:*:*:*:*:*:*
cpe:2.3:a:google:tensorflow:2.6.0:rc1:*:*:*:*:*:*
cpe:2.3:a:google:tensorflow:2.6.0:rc2:*:*:*:*:*:*