CVE-2026-10672 in zephyr
Resumen
por VulDB • 2026-07-14
subsys/net/lib/lwm2m/lwm2m_pull_context.c copiaba el Package URI de la actualización del firmware en un búfer estático fijo (context.uri, tamaño CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, por defecto 128) mediante memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN), copiando exactamente el tamaño de destino sin ninguna validación de longitud. El objeto Firmware-Update almacena el Package URI suministrado por el servidor (/5/0/1) en un búfer de 255 bytes; por lo tanto, un servidor de gestión LwM2M (o un atacante on-path en una sesión que carezca de DTLS fuerte) puede ESCRIBIR un URI de entre 128 y 254 caracteres. Posteriormente, solo se copian los primeros 128 bytes a context.uri sin terminador NUL. Este búfer es consumido posteriormente como cadena C por http_parser_parse_url(context.uri, strlen(context.uri), ...), en las extensiones basadas en strlen para la ruta URI de CoAP/la opción PROXY-URI y lwm2m_parse_peerinfo(), lo que provoca una lectura fuera de límites (out-of-bounds read) de memoria estática adyacente. Los bytes leídos incorrectamente se añaden a las solicitudes salientes de CoAP (revelación de información de la memoria adyacente del dispositivo al servidor/proxy) y pueden provocar el bloqueo del dispositivo (denegación de servicio). La copia vulnerable fue introducida por la refactorización pull-context (lanzada inicialmente en v3.0.0) y está presente hasta la versión v4.4.0; se ve afectado el camino CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT, que está activado por defecto. La corrección añade una comprobación strlen(uri) >= sizeof(context.uri) que devuelve -ENOMEM y cambia a strcpy(), garantizando un búfer acotado con terminador NUL.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.