CVE-2026-15892 in Zephyr
Sumário
de VulDB • 14/09/2026
Os manipuladores do grupo de gerenciamento de configurações SMP mcumgr, nomeadamente settings_mgmt_read(), settings_mgmt_write() e settings_mgmt_delete(), em subsys/mgmt/mcumgr/grp/settings_mgmt/src/settings_mgmt.c, alocam um buffer key_name (e, para leituras, um buffer data) via k_malloc() quando CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP está habilitado, confiando no rótulo end: para chamá-los com k_free(). Quando CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK também estiver habilitado e o hook de acesso da aplicação rejeitar uma solicitação retornando MGMT_CB_ERROR_RC, o manipulador executa return ret_rc; diretamente, contornando end: e vazando a alocação do heap em cada solicitação rejeitada.
Os manipuladores de configurações são acessíveis através do transporte SMP não autenticado (Bluetooth LE, UART ou UDP, dependendo da configuração do produto). O hook de acesso é o mecanismo que as aplicações utilizam para negar o acesso não autorizado às configurações, e MGMT_CB_ERROR_RC é um estilo comum de rejeição; portanto, um atacante capaz de enviar comandos de leitura/escrita/exclusão de configurações que são rejeitados pelo gatilho aciona um vazamento do heap em cada tentativa.
Como a memória vazada nunca é recuperada até a reinicialização, uma sequência sustentada de solicitações rejeitadas esgota monotonicamente o kernel heap até que k_malloc() falhe, negando o serviço mcumgr e impactando qualquer outro consumidor do heap no dispositivo — um ataque de negação de serviço (DoS). O impacto é apenas na disponibilidade; não há corrupção de memória nem divulgação de informações. Apenas as configurações que selecionam o tipo de buffer em heap, habilitam o hook de acesso e registram um hook que retorna MGMT_CB_ERROR_RC são afetadas (o tipo padrão de buffer em stack não pode vazar).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.