Vulnerabilidad en la decodificación de un mensaje con la asignación dinámica habilitada en Nanopb (CVE-2020-26243)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-119
Restricción de operaciones inapropiada dentro de los límites del búfer de la memoria
Fecha de publicación:
25/11/2020
Última modificación:
07/12/2020
Descripción
Nanopb es una implementación de Búferes de Protocolo de código de tamaño pequeño. En Nanopb versiones anteriores a 0.4.4 y 0.3.9.7, la decodificación de un mensaje formado específicamente puede filtrar la memoria si es habilitada la asignación dinámica y un campo contiene un submensaje estático que contiene un campo dinámico, y el mensaje que está siendo decodificado contiene el submensaje varias veces. Esto es raro en los mensajes normales, pero es preocupante cuando son analizados datos no fiables. Esto está corregido en las versiones 0.3.9.7 y 0.4.4. Están disponibles las siguientes soluciones provisionales: 1) Poner la opción "no_unions" para el campo uno. Esto generará campos como separados en lugar de la unión C, y evita desencadenar el código problemático. 2) Ajustar el tipo de campo de submensaje dentro de uno de ellos a "TP_POINTER". De esta manera todo el submensaje será asignado dinámicamente y el código problemático no será ejecutado. 3) Usar un asignador de campos para el nanopb, para asegurarse de que toda la memoria pueda ser liberada después
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Puntuación base 2.0
4.30
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* | 0.3.9.7 (excluyendo) | |
| cpe:2.3:a:nanopb_project:nanopb:*:*:*:*:*:*:*:* | 0.4.0 (incluyendo) | 0.4.4 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



