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

Vulnerabilidad en la función sn_coap_parser_options_parse() en el campo CoAP option number en la biblioteca CoAP en Arm Mbed OS (CVE-2020-12887)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-190 Desbordamiento o ajuste de enteros
Fecha de publicación:
18/06/2020
Última modificación:
21/07/2021

Descripción

Se detectaron pérdidas de la memoria en la biblioteca CoAP en Arm Mbed OS versión 5.15.3 cuando se usa la biblioteca Arm mbed-coap versión 5.1.5. El analizador CoAP es responsable de analizar los paquetes CoAP recibidos. La función sn_coap_parser_options_parse() analiza el campo CoAP option number de todas las opciones presentes en el paquete de entrada. Cada número de opción es calculado como una suma del número de opción previo y un delta de la opción actual. El delta y el número de opción anterior son expresados como enteros de 16 bits sin signo. Debido a la falta de detección de desbordamiento, es posible crear un paquete que contenga el número de opción y resulte en que el mismo número de opción sea procesado nuevamente en un solo paquete. Determinadas opciones asignan memoria llamando a una función de asignación de memoria. En los casos de COAP_OPTION_URI_QUERY, COAP_OPTION_URI_PATH, COAP_OPTION_LOCATION_QUERY y COAP_OPTION_ETAG, no se comprueba si ya se ha asignado memoria, lo que en conjunto con el desbordamiento de enteros del número de opción puede conllevar a múltiples asignaciones de memoria asignada a un único puntero. Se ha demostrado que esto conlleva a una pérdida de memoria mediante un huérfano de búfer. Como resultado, la memoria nunca es liberada

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:arm:mbed-coap:5.1.5:*:*:*:*:*:*:*
cpe:2.3:o:arm:mbed_os:5.15.3:*:*:*:*:*:*:*