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

Vulnerabilidad en la decodificación de un mensaje en llamadas "free()" o "realloc()" en Nanopb (CVE-2021-21401)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
23/03/2021
Última modificación:
29/03/2021

Descripción

Nanopb es una implementación de Protocol Buffers de tamaño de código pequeño en ansi C. En Nanopb versiones anteriores a 0.3.9.8 y 0.4.5, la decodificación de un mensaje formado específicamente puede causar llamadas "free()" o "realloc()" no válidas si el tipo de mensaje contiene un campo "oneof", y el "oneof" contiene directamente un campo pointer como un campo non-pointer. Si los datos del mensaje contienen primero el campo non-pointer y luego el campo pointer, los datos del campo non-pointer son tratados incorrectamente como si fuera un valor pointer. Estos datos de mensajes raramente ocurren en mensajes normales, pero es una preocupación cuando son analizados datos que no son confiables. Esto ha sido corregido en versiones 0.3.9.8 y 0.4.5. Consulte el Aviso de Seguridad de GitHub al que se hace referencia para obtener más información, incluyendo las soluciones

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* 0.3.9.8 (excluyendo)
cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* 0.4.0 (incluyendo) 0.4.5 (excluyendo)