Liambindle · Mqtt-C · CVE-2026-54412
**Nome do Software Vulnerável e Versões Afetadas**
LiamBindle MQTT-C versões anteriores a 1.1.7
**Descrição**
Uma leitura fora dos limites do heap (out-of-bounds read) e um subfluxo de inteiro (integer underflow) existem na função `mqtt unpack publish response()` em `src/mqtt.c`. Um invasor remoto não autenticado que controle um broker MQTT ou consiga injetar tráfego em uma sessão não criptografada pode causar a falha (crash) de um cliente inscrito e potencialmente expor a memória adjacente do heap ao enviar um pacote PUBLISH manipulado. O problema ocorre porque a função não verifica se o campo `topic name size`, lido do pacote, somado ao overhead, cabe dentro do `remaining length` do cabeçalho fixo. Isso leva a um subfluxo de inteiro ao calcular o `application message size` usando aritmética sem sinal, que é então passado para a função `memmove()`. Por exemplo, um pacote com `topic name size` definido como 0xFFFF e `remaining length` definido como 7 faz com que o ponteiro de análise avance 65535 bytes além do buffer de recebimento e resulte em um `application message size` próximo a 2^32, derrubando o processo.
**Recomendações**
Atualize para uma versão posterior a 1.1.6.
Como medida paliativa temporária, restrinja o acesso à função `mqtt unpack publish response()` ou evite a conexão com brokers MQTT não confiáveis até que uma correção seja aplicada.