PT-2020-16371 · Nanopb+2 · Nanopb+2
Petteri Aimonen
·
Publicado
2020-11-25
·
Atualizado
2024-06-15
·
CVE-2020-26243
CVSS v3.1
7.5
Alta
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
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.
Exploit
Correção
Buffer Overflow
RCE
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Linuxmint
Nanopb
Ubuntu