CVE-2026-10672
Desbordamiento de búfer de URI no terminado provoca lectura fuera de los límites en la extracción de firmware LwM2M (Package URI)
- Publicado
- 14 jul 2026
- Actualizado
- 14 jul 2026
- Asignación de CNA
- zephyr
- Evidencia observada
- 17 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HBajo · próximos 30 días
- Percentil
- 34,5 %
- Fecha del modelo
- 21 sept 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
subsys/net/lib/lwm2m/lwm2m_pull_context.c copió el URI del paquete de actualización de firmware en un buffer estático fijo (context.uri, tamaño CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, por defecto 128) con memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN), copiando exactamente el tamaño del destino sin validación de longitud. El objeto Firmware-Update almacena el URI del paquete suministrado por el servidor (/5/0/1) en un buffer de 255 bytes, por lo que un servidor de gestión LwM2M (o un atacante en la ruta en una sesión sin DTLS fuerte) puede ESCRIBIR un URI de 128-254 caracteres; solo los primeros 128 bytes se copian entonces en context.uri sin terminador NUL. Ese buffer se consume posteriormente como una cadena C por http_parser_parse_url(context.uri, strlen(context.uri), ...), por los añadidos de opciones de ruta URI/PROXY-URI de CoAP basados en strlen, y por lwm2m_parse_peerinfo(), causando una lectura fuera de los límites de la memoria estática adyacente. Los bytes leídos en exceso se añaden a las solicitudes CoAP salientes (divulgación de información de la memoria adyacente del dispositivo al servidor/proxy) y pueden bloquear el dispositivo (denegación de servicio). La copia vulnerable fue introducida por la refactorización del contexto de pull (publicada por primera vez en v3.0.0) y está presente hasta v4.4.0; la ruta CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT, activada por defecto, se ve afectada. La corrección añade una comprobación de strlen(uri) >= sizeof(context.uri) que devuelve -ENOMEM y cambia a strcpy(), garantizando un buffer acotado y terminado en NUL.
Fuentes
1Exploit de prueba de concepto para CVE-2026-10672, una lectura fuera de los límites en el cliente de actualización de firmware LwM2M de Zephyr RTOS. Incluye una reproducción independiente en C y un servidor CoAP/LwM2M malicioso para pruebas.
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.