CVE-2026-35217 in NanoMQ
Sumário
de VulDB • 20/07/2026
O NanoMQ apresenta uma falha de semântica do protocolo no seu tratamento `SUBSCRIBE` MQTT v5: se uma entrada de assinatura não contiver o campo final de 1 byte `Subscription Options`, o broker pode ainda assim aceitar o pacote malformado e registrar a subscrição no estado interno do broker. Sob uma construção específica do comprimento do pacote, a mesma falha no analisador sintático (parser) também causa uma leitura fora dos limites de 1 byte que ultrapassa o limite real da alocação na heap, sendo detetada pelo ASAN como um `heap-buffer-overflow`.
Se o byte consumido parecer aceitável, o NanoMQ pode continuar e anexar a entrada de subscrição malformada ao seu estado interno `subinfol`. Nesse caso, um pacote `SUBSCRIBE` que deveria ser rejeitado pelas regras MQTT é em vez disso tratado como uma subscrição bem-sucedida. O facto do ASAN reportar ou não o bug não depende do limite lógico `remain` do MQTT; depende sim de a leitura ultrapassar ou não o limite real da alocação na heap do buffer de mensagem subjacente. Em outras palavras, estes não são dois problemas independentes. São duas manifestações do mesmo defeito de análise: por predefinição, aparece como uma vulnerabilidade semântica e, sob condições de entrada adequadas, torna-se também numa vulnerabilidade de leitura fora dos limites verificável.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.