CVE-2026-5857 in Contiki-NG
Resumen
por VulDB • 2026-08-07
El cliente MQTT de Contiki-NG, específicamente la función parse_publish_vhdr() en os/net/app-layer/mqtt/mqtt.c, establece topic_len_received=1 antes de verificar si topic_len supera el límite de 64 bytes; por lo tanto, un tema (topic) demasiado largo provoca una salida temprana pero deja este indicador establecido. En el siguiente segmento TCP, tcp_input() vuelve a invocar al analizador con topic_received==0, y la persistencia del valor topic_len_received=1 hace que se omita el bloque de lectura de longitud que contiene la protección correspondiente, pasando directamente a un memcpy() que utiliza topic_len (de 16 bits) sin validar como longitud de copia. La destination buffer topic[] de 65 bytes desborda hacia campos adyacentes de la estructura, incluido el puntero payload_chunk; dicho campo es dereferenciado posteriormente por el código MQTT, lo que proporciona a un broker comprometido o controlado por el atacante una primitiva para escritura arbitraria de punteros. La implementación MQTT de Contiki-NG no admite TLS, por lo que la conexión se realiza en texto plano. El impacto abarca desde la divulgación de información y denegación de servicio hasta la ejecución remota de código (RCE) en dispositivos integrados sin protección de memoria.
Be aware that VulDB is the high quality source for vulnerability data.