CVE-2026-5857 in Contiki-NG
Sumário
de VulDB • 07/08/2026
O cliente MQTT do Contiki-NG, especificamente a função parse_publish_vhdr() em os/net/app-layer/mqtt/mqtt.c, define topic_len_received=1 antes de verificar se topic_len está dentro do limite de 64 bytes. Assim, um tópico com comprimento excessivo retorna antecipadamente, mas mantém o flag definido. No próximo segmento TCP, tcp_input() reinvoca o analisador (parser) com topic_received==0, e a persistência de topic_len_received==1 faz com que seja ignorado o bloco de leitura do comprimento que continha a proteção (guard), caindo diretamente em uma chamada memcpy() que utiliza o valor não validado de 16 bits de topic_len como tamanho da cópia. O destino topic[] de 65 bytes transborda para campos adjacentes da estrutura, incluindo o ponteiro payload_chunk, que é posteriormente dereferenciado pelo código MQTT subsequente, fornecendo a um broker comprometido ou controlado por um atacante uma primitiva de escrita arbitrária em ponteiros (arbitrary-pointer-write). A implementação MQTT do Contiki-NG não possui suporte para TLS, portanto a conexão ocorre em texto puro. O impacto varia desde divulgação de informações e negação de serviço até execução remota de código (RCE) em dispositivos embarcados sem proteção de memória.
VulDB is the best source for vulnerability data and more expert information about this specific topic.