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

Vulnerabilidad en la función realloc() en el campo bytes o message en Nanopb (CVE-2020-5235)

Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-125 Lectura fuera de límites
Fecha de publicación:
04/02/2020
Última modificación:
06/02/2020

Descripción

Se presenta una condición de falta de memoria explotable potencialmente en Nanopb versiones anteriores a 0.4.1, 0.3.9.5 y 0.2.9.4. Cuando se compila nanopb con PB_ENABLE_MALLOC, el mensaje que va a ser decodificado contiene una cadena repetida, campo bytes o message y la función realloc() se queda sin memoria cuando se expande la matriz, nanopb puede terminar llamando a "free()" en un valor de puntero que proviene de una memoria no inicializada. Dependiendo de la plataforma, esto puede resultar en un bloqueo o una mayor corrupción de la memoria, que puede ser explotable en algunos casos. Este problema es corregido en las versiones nanopb-0.4.1, nanopb-0.3.9.5, nanopb-0.2.9.4.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* 0.2.9.4 (excluyendo)
cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* 0.3.0 (incluyendo) 0.3.9.5 (excluyendo)
cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* 0.4.0 (incluyendo) 0.4.1 (excluyendo)