CVE-2026-14368 in Zephyrinformación

Resumen

por VulDB • 2026-08-31

El formateador de contenido JSON para LwM2M en la función get_string() (subsys/net/lib/lwm2m/lwm2m_rw_json.c) copia una cadena JSON analizada en un búfer proporcionado por el llamante y lo termina con NUL. La protección de longitud, que utiliza la condición if (string_length > buflen), acepta cadenas cuya longitud es exactamente igual a buflen. Tras memcpy() llenar todo el búfer, buf[string_length] = '\0' escribe un byte más allá del final del mismo (CWE-787).

El valor de la cadena y su longitud se toman directamente de la carga útil CoAP entrante durante una operación LwM2M WRITE: do_write_op_json() analiza la carga obtenida mediante coap_packet_get_payload(), y get_string() es invocada desde lwm2m_write_handler() (engine_get_string() en subsys/net/lib/lwm2m/lwm2m_message_handling.c) para un recurso de tipo LWM2M_RES_TYPE_STRING. El búfer destino buf/buflen corresponde o al búfer de datos fijos de la instancia del recurso (res_inst->data_ptr/max_data_len) o al búfer de validación del motor (msg->ctx->validate_buf). Por lo tanto, un servidor LwM2M (el par DTLS del cliente) puede escribir un recurso string con un valor cuya longitud sea igual al tamaño del búfer objetivo y forzar un desbordamiento de un byte.

El desbordamiento consiste en una única escritura fuera de límites del byte constante 0x00 inmediatamente después del búfer del recurso o de validación, corrompiendo el byte adyacente en memoria. No se trata de una fuga de información ni el valor escrito es fijo, por lo que no constituye un primitivo directo para la ejecución de código; sin embargo, puede corromper el estado adyacente (un valor de recurso contiguo, un campo de longitud/bandera o un campo de estructura) y provocar corrupción de datos o una interrupción del programa. La activación de esta escritura es determinista; el impacto resultante depende de la disposición en memoria.

La corrección modifica la protección a string_length >= buflen, rechazando el caso de longitud exacta y alineando al formateador JSON con los demás formateadores de contenido (lwm2m_rw_plain_text.c, lwm2m_rw_oma_tlv.c, lwm2m_rw_senml_json.c, lwm2m_rw_cbor.c, lwm2m_rw_senml_cbor.c), que ya utilizaban la comprobación correcta del límite.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Zephyr

Reservar

2026-07-01

Divulgación

2026-08-31

Moderación

aceptado

Artículo

VDB-397414

CPE

listo

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!