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
Impacto
Puntuación base 3.x
7.10
Gravedad 3.x
ALTA
Puntuación base 2.0
5.50
Gravedad 2.0
MEDIA
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) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



