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

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

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)