Nanopb · Nanopb · CVE-2020-26243
**Nome do software vulnerável e versões afetadas**
Versões do Nanopb anteriores à 0.3.9.7
Versões do Nanopb anteriores à 0.4.4
**Descrição**
A decodificação de mensagens com estrutura específica pode causar vazamento de memória se a alocação dinâmica estiver habilitada e um campo `oneof` contiver uma submensagem estática que, por sua vez, contenha um campo dinâmico, e a mensagem que está sendo decodificada contiver essa submensagem várias vezes. Isso é raro em mensagens normais, mas é uma preocupação quando dados não confiáveis são analisados.
**Recomendações**
Para versões anteriores à 0.3.9.7, atualize para a versão 0.3.9.7 para resolver o problema.
Para versões anteriores à 0.4.4, atualize para a versão 0.4.4 para resolver o problema.
Como solução temporária, considere definir a opção `no unions` para o campo oneof a fim de gerar campos separados em vez de uma união C.
Alternativamente, defina o tipo do campo da submensagem dentro de oneof como `FT POINTER` para alocar dinamicamente toda a submensagem.
Usar um alocador de arena para o nanopb também pode garantir que toda a memória seja liberada posteriormente.