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

Vulnerabilidad en el código TFLite para asignar "TFLiteIntArray" en TensorFlow (CVE-2021-29605)

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

Descripción

TensorFlow es una plataforma de código abierto de extremo a extremo para el aprendizaje automático. El código TFLite para asignar "TFLiteIntArray" es vulnerable a un problema de desbordamiento de enteros (https://github.com/tensorflow/tensorflow/blob/4ceffae632721e52bf3501b736e4fe9d1221cdfa/tensorflow/lite/c/common.c#L24-L27). Un atacante puede diseñar un modelo tal que el multiplicador de "size" sea tan grande que el valor de retorno desborde el tipo de datos "int" y se vuelva negativo. A su vez, esto resulta en que se le dé un valor no válido a "malloc" (https://github.com/tensorflow/tensorflow/blob/4ceffae632721e52bf3501b736e4fe9d1221cdfa/tensorflow/lite/c/common.c#L47-L52). En este caso, "ret-)size" eliminaría la referencia a un puntero no válido. La corrección será incluida en TensorFlow versión 2.5.0. También seleccionaremos este commit 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

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)