Vulnerabilidad en la función sn_coap_parser_options_parse (CVE-2019-17212)
Gravedad CVSS v3.1:
CRÍTICA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
05/11/2019
Última modificación:
24/08/2020
Descripción
Fueron detectados desbordamientos de búfer en la biblioteca CoAP en Arm Mbed OS versión 5.14.0. El analizador de CoAP es responsable de analizar los paquetes CoAP recibidos. La función sn_coap_parser_options_parse() analiza la entrada CoAP linealmente usando un bucle while. Una vez que una opción es analizada en un bucle, el punto actual (*packet_data_pptr) es incrementado correspondientemente. El puntero está restringido por el tamaño del búfer recibido, así como por el byte delimitador 0xFF. Dentro de cada bucle while, la comprobación del valor de *packet_data_pptr no se aplica estrictamente. Más específicamente, dentro de un bucle, *packet_data_pptr podría ser aumentada y luego desreferenciarse sin comprobar. Además, existen muchas otras funciones en el formato de sn_coap_parser que no comprueban si el puntero está dentro de los límites del búfer asignado. Todo esto conduce a desbordamientos de búfer en la región heap de la memoria o en la región stack de la memoria, dependiendo de cómo sea asignado el búfer de paquetes CoAP.
Impacto
Puntuación base 3.x
9.80
Gravedad 3.x
CRÍTICA
Puntuación base 2.0
10.00
Gravedad 2.0
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:mbed:mbed:5.13.2:*:*:*:*:*:*:* | ||
| cpe:2.3:o:mbed:mbed:5.14.0:*:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/ARMmbed/mbed-os/blob/d91ed5fa42ea0f32e4422a3c562e7b045a17da40/features/frameworks/mbed-coap/source/sn_coap_parser.c#L257
- https://github.com/ARMmbed/mbed-os/blob/d91ed5fa42ea0f32e4422a3c562e7b045a17da40/features/frameworks/mbed-coap/source/sn_coap_parser.c#L301
- https://github.com/ARMmbed/mbed-os/blob/d91ed5fa42ea0f32e4422a3c562e7b045a17da40/features/frameworks/mbed-coap/source/sn_coap_parser.c#L310
- https://github.com/ARMmbed/mbed-os/blob/d91ed5fa42ea0f32e4422a3c562e7b045a17da40/features/frameworks/mbed-coap/source/sn_coap_parser.c#L313
- https://github.com/ARMmbed/mbed-os/blob/d91ed5fa42ea0f32e4422a3c562e7b045a17da40/features/frameworks/mbed-coap/source/sn_coap_parser.c#L331
- https://github.com/ARMmbed/mbed-os/blob/d91ed5fa42ea0f32e4422a3c562e7b045a17da40/features/frameworks/mbed-coap/source/sn_coap_parser.c#L660
- https://github.com/ARMmbed/mbed-os/issues/11803



