Vulnerabilidad en el código Go en la cadena "C.TF_TString_Dealloc" en la recolección de basura en una función finalizer en TensorFlow (CVE-2021-37692)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-20
Validación incorrecta de entrada
Fecha de publicación:
12/08/2021
Última modificación:
31/08/2021
Descripción
TensorFlow es una plataforma de código abierto de extremo a extremo para el aprendizaje automático. En las versiones afectadas bajo determinadas condiciones, el código Go puede desencadenar un error de segmentación en la desasignación de cadenas. Para tensores de cadena, se llama a "C.TF_TString_Dealloc" durante la recolección de basura dentro de una función finalizer. Sin embargo, la estructura del tensor no es comprobada hasta la codificación para impedir que se lleve a cabo una penalización del rendimiento. El método actual para dealloc asume que la codificación tuvo éxito, pero segfaults cuando se recolecta basura un tensor de cadena cuya codificación falló (por ejemplo, debido a dimensiones no coincidentes). Para solucionar este problema, la llamada para establecer la función finalizer se aplaza hasta que regrese "NewTensor" y, si la codificación presenta un fallo para un tensor de cadena, las deslocalizaciones se determinan en función de los bytes escritos. Hemos solucionado el problema en GitHub commit 8721ba96e5760c229217b594f6d2ba332beedf22. La corrección será incluida en TensorFlow versión 2.6.0. También seleccionaremos este commit en TensorFlow versión 2.5.1, que es la otra versión afectada.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Puntuación base 2.0
2.10
Gravedad 2.0
BAJA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:google:tensorflow:*:*:*:*:*:*:*:* | 2.5.0 (incluyendo) | 2.6.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



